我使用以下方法
我刚试过下面的代码行,动态设置UITableViewHeaderFooterView的高度大小。
self.tableView.estimatedSectionHeaderHeight = 100
self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension
我遇到以下问题
在iOS9中,iOS10可以正常运行,并且可以正常显示。但无法在iOS8中正确显示,并显示以下错误:
我的分析如下:
从错误提示中,我可以看到问题是NSLayoutConstraint:0x7f8498d7b890 _UITableViewHeaderFooterContentView:0x7f8498cb9200.height == 0
但我从来没有对UITableViewHeaderFooterContentView做任何约束
我应该如何适应iOS8?
答案 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];
}