去掉tableView的粘性组头
首先看一下UITableViewStylePlain 和 UITableViewStyleGrouped的区别
1.先是header 部分,plain是没有考虑顶部的,就是wifi信号那一栏的,
2.然后plain 有一个顶部滞留的效果,即拖动时,header 随着某一分组一起移动。group是没有的,这是两者最大的区别。
去除UITableViewStylePlain类型的UITableView的粘性组头需要实现scrollView中的一个代理方法。主要是在表格滚动的时候,通过调节contentInset这个属性。
具体代码如下:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == _tableView) {
CGFloat sectionHeaderHeight = 45;//设置的header高度
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);
}
}
return;
}
UIScrollView的几个属性
contentOffset 这个属性用来表示 scrollView 滚动的位置
contentSize 这个属性用来表示 scrollView 中内容的尺寸,滚动范围
contentInset 这个属性能够在 scrollView 的四周增加额外的滚动区域
1953382-c07ac3c52e80af42.png
网友评论