UITableView添加到UIViewController的view时显示问题

时间:2023-01-22 15:02:00



如果UITableView的类型为UITableViewStylePlain:无影响,正常

如果UITableView的类型为UITableViewStyleGrouped:则会向下滚动了一段距离,严重影响了正常的展示;

从网上查几种解决办法:


1.设置headerView   self.tableView.tableHeaderView = [[UIView allocinitWithFrame:CGRectMake(000CGFLOAT_MIN)];

比如孙源:

http://blog.sunnyxx.com/2015/04/15/ios-hide-grouped-tableview-header/

或者通过代理方法

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {

  return 0.1;

}

但是测试发现这两种设置header都无效,

2.有人说设置tableHeaderView的顺序应该在设置tableView的delegate和dataSourcer后面,经测试也无效,


然后经累到吐测试发现两种方法可生效,当然前提都是需要设置tableView的tableHeaderView;

1.在tableView被add到self.view前,有其他view被add到self.view上,那么只要设置tableView的headerView就会有效,如果在tableView前没有其他view被add,那么只设置headerView是无效的。

2.设置viewController的属性self.automaticallyAdjustsScrollViewInsets=NO,在设置为NO的情况下,只要设置了tableView的tableHeaderView,无论tableView被添加到self.view前是否有其他view被add,都会生效。