让UITableView的headerview不悬停的方法

本文介绍两种取消UITableView中section header默认悬停于顶部的方法:一是更改TableView的style属性为Grouped;二是通过scrollViewDidScroll方法自定义实现。这两种方法各有优缺点,需根据实际项目需求选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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


2

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