1.改变风格
UITableView的风格(style)有两种,默认的是plain风格,它会使得区头悬浮显示,而grouped风格则区头跟随表格滑动。
但是这种风格在加载视图的时候会出现一屏幕的横线,效果不好,不建议使用。
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);
}
}
加上这个方法,其中sectionHeaderHeight为你设置的header高度。
这个方法确实可以实现我们想要的效果,但是这个方法滑动的时候流畅性不佳,bug很多,不建议使用。
3.header加到cell上
header可以加在你第一个cell上面,也就是在indexPath.row == 0的时候,特殊处理。
这个方法是可行的的,但是要注意分页问题和cell的重用问题。
4.把分区区头也作为一个分区
这种方法是我认为最简单的,也是问题最少的,多设置几个分区而已,最多多些几行判断,简单明了何乐而不为呢。
UITableView的风格(style)有两种,默认的是plain风格,它会使得区头悬浮显示,而grouped风格则区头跟随表格滑动。
但是这种风格在加载视图的时候会出现一屏幕的横线,效果不好,不建议使用。
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);
}
}
加上这个方法,其中sectionHeaderHeight为你设置的header高度。
这个方法确实可以实现我们想要的效果,但是这个方法滑动的时候流畅性不佳,bug很多,不建议使用。
3.header加到cell上
header可以加在你第一个cell上面,也就是在indexPath.row == 0的时候,特殊处理。
这个方法是可行的的,但是要注意分页问题和cell的重用问题。
4.把分区区头也作为一个分区
这种方法是我认为最简单的,也是问题最少的,多设置几个分区而已,最多多些几行判断,简单明了何乐而不为呢。
写的不好,多多见谅。