去掉tableView的粘性组头

首先看一下UITableViewStylePlain 和 UITableViewStyleGrouped的区别
1.先是header 部分,plain是没有考虑顶部的,就是wifi信号那一栏的,
2.然后plain 有一个顶部滞留的效果,即拖动时,组头随着某一分组一起移动。group是没有的,这是它两最大的区别。
去除UITableViewStylePlain类型的UITableView的粘性组头需要实现scrollView中的一个代理方法。主要是在表格滚动的时候,通过调节contentInset这个属性。contentInset 这个属性理解起来,很容易,但是,表述起来有点困难。直接说效果:就跟css中padding属性作用是一样的。这个属性很好用,如果能把这个属性用好,对于表格滚动,内容显示不完全等问题都能得到很好的解决。具体代码如下:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    /*
    contentInset 这个属性理解起来,很容易,但是,表述起来有点困难。
     直接说效果:就跟,css中padding属性作用是一样的。
     scrollView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0);
     这样定义后,内容视图开始显示的坐标为(0,51)。
     */
    if (scrollView == _tableView) {
        CGFloat sectionHeaderHeight = 36;
        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);
        }
    }
    return;
}

你可能感兴趣的:(去掉tableView的粘性组头)