iOS8如何动态修复UITableViewHeaderFooterView的高度尺寸?
问题描述:
我使用的方法如下iOS8如何动态修复UITableViewHeaderFooterView的高度尺寸?
我刚尝试下面的代码行,动态地设置UITableViewHeaderFooterView高度尺寸。
self.tableView.estimatedSectionHeaderHeight = 100 self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension
我具有以下问题
在iOS9,iOS10可以正常运行,并且可以正确地显示。但是,不能在iOS8上正确显示,并显示以下错误:
我的分析如下:
从错误提示,我可以看到这个问题是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];
}
呼叫,当你回到你的了'表视图单元格中为行at'方法'updateConstraintsIfNeeded'方法。 'cell.updateConstraintsIfNeeded() 回报cell' ,则不需要此步为iOS 9+ –
此方法不起作用 – ChildrenGreens
为了使UITableViewAutomaticDimension工作,你必须将所有左,右,底部和顶部约束相对于单元格容器视图。检查你是否添加了所有四个约束... –