实现UITableView穿过透明的导航栏时,tableView的sectionHeader停留在导航栏下面(引用这个方法来说):
在UIScrollView的代理方法-(void)scrollViewDidScroll:(UIScrollView *)scrollView 实现下面的代码,
CGFloat header = 64;//这个header其实是section1 的header到顶部的距离
if (scrollView.contentOffset.y<=header&&scrollView.contentOffset.y>=0) {
//当视图滑动的距离小于header时
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
}else if(scrollView.contentOffset.y>header)
{
//当视图滑动的距离大于header时,这里就可以设置section1的header的位置啦,设置的时候要考虑到导航栏的透明对滚动视图的影响
scrollView.contentInset = UIEdgeInsetsMake(header, 0, 0, 0);
}
主要写一下下面这个问题:
在网络请求,获取到列表数据后,tableview往上滑动时,没有出现sectionheader停留在导航栏下面,而是tableview的contentOffset.y被改变了,出现的情况就是往上滑tableview一直跳动,经过测试才发现,由于数据比较少,导致tableview的contentSize没有屏幕那么高,就一直滑不上去,数据多,上面的方法是可行的。