我使用如下方法

我刚刚尝试了下面的代码行,动态设置UITableViewHeaderFooterView的高度大小。

self.tableView.estimatedSectionHeaderHeight = 100self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension

我有以下问题

在iOS9中,iOS10可以正常运行,并且可以正确显示。但是在iOS8中无法正确显示,并显示以下错误:

ios - iOS8如何动态固定UITableViewHeaderFooterView的高度大小?-LMLPHP

我的分析如下:

从错误提示中,我可以看到问题是NSLayoutConstraint:0x7f8498d7b890 _UITableViewHeaderFooterContentView:0x7f8498cb9200.height == 0

但是我从未对UITableViewHeaderFooterContentView进行任何约束

我应该如何安装iOS8?

最佳答案

您需要使用UIView systemLayoutSizeFittingSize:

-(void)viewDidLayoutSubviews
    {
        [super viewDidLayoutSubviews];

        [ViewHeader setNeedsLayout];
        [ViewHeader layoutIfNeeded];
        CGFloat height = [ViewHeader systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

        CGRect headerFrame = ViewHeader.frame;
        headerFrame.size.height = height;
        ViewHeader.frame = headerFrame;
        [tbl setTableHeaderView:ViewHeader];
    }

10-02 09:59