实现UITableView穿过透明的导航栏时, contentSize引起问题

xiaoxiao2021-02-28  52

实现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没有屏幕那么高,就一直滑不上去,数据多,上面的方法是可行的。

转载请注明原文地址: https://www.6miu.com/read-58177.html

最新回复(0)