天天看点

让UITableView的section header view不悬停,让UITableView的section headerview取消粘性

当  

UITableView

 的  

style

 属性设置为  

Plain

 时,这个tableview的section header在滚动时会默认悬停在界面顶端。取消这一特性的方法有两种: 

  1. 将  

    style

     设置为  

    Grouped

     。这时所有的section header都会随着scrollview滚动了。不过  

    grouped

     和  

    plain

     的样式有轻微区别,切换样式后也许需要重新调整UI ,plain可以设置section的间隔高度,grouped是没有办法设置section之间的间隔高度。
  2. 重载scrollview的delegate方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat sectionHeaderHeight = 40;
    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);
    }
}