我table 设置宽度了tableHeaderView了以后为什么会把cell的内容给覆盖了

iOS-UITableView 之 tableHeaderView 遮挡后面 cell 的问题 - 简书
iOS-UITableView 之 tableHeaderView 遮挡后面 cell 的问题
1. 理想状态下的 tableHeaderView(见下图):
理想状态下的tableView.png
2. 但是有时候会出现这种情况(见下图):
tableHeaderView遮挡住cell01.png
tableHeaderView遮挡住cell02.png
3. 出现问题的代码
#pragma mark - 设置tableHeaderView
- (void)setupTableHeaderView
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor greenColor];
// 设置 tableHeaderView
self.tableView.tableHeaderView =
// 设置 view 的 frame
view.frame = CGRectMake(0, 0, kScreenWidth, 90 * kScaleHeight);
出现遮挡的代码.png
4. 破解之道
#pragma mark - 设置tableHeaderView
- (void)setupTableHeaderView
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor greenColor];
// 设置 view 的 frame(将设置 frame 提到设置 tableHeaderView 之前)
view.frame = CGRectMake(0, 0, kScreenWidth, 90 * kScaleHeight);
// 设置 tableHeaderView
self.tableView.tableHeaderView =
// 设置 view 的 frame
view.frame = CGRectMake(0, 0, kScreenWidth, 90 * kScaleHeight);
解决之道.png
会一点iOS,偶尔也做点鸡汤。其实真实身份是段子手!下次自动登录
现在的位置:
& 综合 & 正文
如何让 UITableView 的 headerView跟随 cell一起滚动
在我们利用 UITableView 展示我们的内容的时候,我需要在顶部放一个不同于一般的cell的 界面,这个界面比较独特。
1。 所以我就把它 作为一个section的 headerView。
也就是在函数:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
里面返回 这个UIView。
但是,由于这个UIView占的空间很大,基本占用整个屏幕的高度,而滚动tableView的时候,只滚动cell的内容,而这个section的
headerView却不跟着滚动。
后面,我想出了方法2。
设置 tableView的 style为
UITableViewStyleGrouped,然后让
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
这样确实可以让 headerView ,在滚动tableView的时候,跟随着cell的内容一起滚动。但是,我发现,下面的cell都被加上了边框,
而且cell的水平显示范围变窄了。
所以尝试了方法3。
将UIView设置为
整个tableView的headerView,而不是 section 0的headerView
self.tableView.tableHeaderView=
这样,就可以完美的满足 headerView跟随cell的内容一起滚动的要求拉。
结论:设置 UIView为
tableView的tableHeaderView即可实现 headerView跟随tableView一起滚动的效果。
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 table属性设置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信