UITableView的section headerView不停留

1、修改 UITableView 的 style 属性设置为 Grouped. 这时所有的section header都会随着scrollview滚动了。不过 grouped 和 plain 的样式有轻微区别,切换样式后也许需要重新调整UI。

2、. 如果不使用 Grouped 这种样式, 也可以通过重载 scrollView 的 delegate 来达到目的

OC版本

- (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);
    }
}

Swift版本

func scrollViewDidScroll(scrollView: UIScrollView) {
    let headerH:CGFloat = 20
    
    if scrollView.contentOffset.y <= headerH && scrollView.contentOffset.y >= 0{
        scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0)
    } else if scrollView.contentOffset.y >= headerH {
        scrollView.contentInset = UIEdgeInsetsMake(-headerH, 0, 0, 0);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,273评论 4 61
  • 我不想对你赞美 因为你总是来得那么突然 无所顾及 摧毁他人的信念 是老天在变脸 翻书一样简单 不知是你性情的暴戾 ...
    走在路上的沉默阅读 260评论 0 12
  • 老周原来是个农民,一直在家以种几亩薄田为生。近年来,随着农村新一轮经济改革大潮的到来,老周村里的大部分土地都被政府...
    冬月之恋阅读 720评论 4 26
  • 没能看到我的路,路难道就此终结,路在何方?我的梦还没有醒,难道我已经没有了梦,梦在何处? 这是一条我没走过的路,在...
    云梦浮华阅读 252评论 0 2