我的应用中有一个简单的UITableView
,并且tableView.tableHeaderView
属性的自定义视图。设置此属性后,视图的大小正确(全宽,大约45px高)。
[_resultHeaderView sizeToFit]; // the view as the correct frame
[_resultTableView setTableHeaderView:_resultHeaderView];
在iOS 9及早期版本中,标题显示正确,但在iOS 10中,单元格与标题视图的Y坐标相同,因此我的标题视图显示在第一个单元格上。
设置这些属性也无效:
self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;
在iOS 10中有什么变化可以解释这种不同的行为吗?什么是好的解决方案?
由于
答案 0 :(得分:14)
错误在于视图正在自动调整大小,因此当它连接到tableView时它的帧高确实为0,这解释了行为。
将autoresizingMask设置为none可修复此错误。
_headerView.autoresizingMask = UIViewAutoresizingNone
同样,在iOS 9及更低版本中没有必要。希望这有助于其他人。
答案 1 :(得分:-1)
只需在headerView.frame
之前设置tableView.tableHeaderView = headerView