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

当UITableView的样式设为UITableViewStyleGrouped时,会出现滚动位置不正确的问题。尝试设置tableHeaderView为高度极小的UIView或通过代理方法设置section header高度为0.1无效。此外,设置tableView的delegate和dataSource后再设置headerView也未解决问题。经过测试,两种方法可解决此问题:1)在tableView被添加到self.view之前,先添加其他view;2)设置viewController的automaticallyAdjustsScrollViewInsets为NO,并设置tableHeaderView。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



如果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,都会生效。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值