TableView viewForHeaderInSection 随滚动条滚动 无遮挡

来源:互联网 发布:淘宝网现状分析 编辑:程序博客网 时间:2024/05/16 14:22

当 TableView 样式属性设置 UITableViewStyleGroup 时,HeaderInSection 会随着滚动,但是每个 Header 会有多余的高度(相比heightForHeaderInSection高度来说)。
当 TableView 样式属性设置 UITableViewStylePlain 时,添加的 HeaderInSection 在滑动时会固定在顶部,与 Cell 重叠
如下图:
这里写图片描述

解决方案如下:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {    if (scrollView == self.tableView)    {        CGFloat sectionHeaderHeight = 40;//此高度为heightForHeaderInSection高度值        if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {            scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);        } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {            scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);        }    }}

使用如上代码可以解决,HeaderInSection 方法 View 会随着滚动,不会产生遮挡效果

如有导航栏,Table 会被导航栏遮挡,在 ViewDidLoad 中加入如下代码:

self.edgesForExtendedLayout = UIRectEdgeNone;

即可解决导航遮挡 TableView

文章为原创,来自 软曼网:http://www.ruanman.net

0 0
原创粉丝点击