【发布时间】:2014-10-15 20:57:37
【问题描述】:
有很多关于使用自动布局 (one such thread) 正确调整 tableHeaderView 大小的线程,但它们往往早于 iOS 8。
我有很多表格视图的情况,所有表格视图都带有标题,在 iOS 7 下大小正确,但在 iOS 8 下使用上述大多数线程支持的代码不正确。在表格的控制器中,我有以下方法:
- (void)rejiggerTableHeaderView
{
self.tableView.tableHeaderView = nil;
UIView *header = self.headerView;
[header setNeedsLayout];
[header layoutIfNeeded];
CGFloat height = [header systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
CGRect headerFrame = header.frame;
headerFrame.size.height = height;
header.frame = headerFrame;
self.tableView.tableHeaderView = header;
}
在 iOS 7 下使用多行标签,这样可以正确调整表格视图的标题,如下所示:
但在 iOS 8 下运行的相同代码会产生以下结果:
获取 -systemLayoutSizeFittingSize: 在 iOS 8 下返回正确大小的技巧是什么? Here's a sample project 证明了这个问题。
【问题讨论】:
标签: ios objective-c uitableview