UITableView在plain模式下,段头不悬停

UITableView的Style

我们都知道,在创建UITableView的时候可以选择其风格,分别是UITableViewStylePlainUITableViewStyleGrouped,在Grouped风格下,header会随着cell一块滑动。但是在Plain模式下,header会悬停在顶部。

在有些场景下,我们希望拥有Plain风格的header样式但是又希望其像Grouped风格下的header可以随着cell一起滑动,那么可能我们就需要使用接下来的代码了

1
2
3
4
5
6
7
8
- (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);
}
}

因为UITableView是UIScrollView的子类,所以可以调用该代理方法,在调用该方法之前我们需要遵守UIScrollView的协议UIScrollViewDelegate