今天我们要来说的知识点是UITableView的tableHeaderView,小伙伴要区分清楚,不是协议里的header,而是总的header,需要用tableView.tableHeaderView来设置。
使用tableView.tableHeaderView时,如果使用不当,会造成header覆盖cell,cell内容出现在header上或者header和cell中间莫名多了系统header(即使已经在协议里设置了高度和view为nil)的情况。
注释事项如下:
1.尽量不要使用约束;
2.给出实际的高度值;
博主之前使用相对高度布局,虽然约束也用,但是没在这里用过,最近使用的时候忽然发现加了约束的headerView出现了问题,所以就研究了下,发现headerView必须要提前给出来计算好的高度才可以正常显示,使用约束的时候水平约束不受影响,竖直方向要给出确定的高度,提前计算好,要不然可以考虑用第一个cell来实现headerView功能。
//此协议方法中header不受约束影响,不用设置固定高度也不会出问题 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section