iOS8如何动态修复UITableViewHeaderFooterView高度大小?

时间:2017-07-07 05:41:09

标签: ios uitableview uitableviewsectionheader uitableviewautomaticdimension

我使用以下方法

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

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

我遇到以下问题

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

enter image description here

我的分析如下:

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

但我从来没有对UITableViewHeaderFooterContentView做任何约束

我应该如何适应iOS8?

1 个答案:

答案 0 :(得分:1)

您需要使用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];
    }