iOS UITableView 滚动后弹回最上面

今天遇到一个问题,tableView往上滚,下面的cell可以显示出来,但是当我手指放掉的时候,tableView就又自己回到了最顶部,视觉上就是弹回去了。

心里大概知道是tableView的高度出了问题,于是去检查,发现:

tableView的高度写的是:( cell.height + footer.height ) * _dataArray.count - footer.height.

//header的高度是CGFloatMin;

咋一看,没毛病啊!


UITabelView继承于UIScrollView,想要滚动,则必须tableView的高度 < contenSize.

tableView的contenSize不需要我们去设置,它会自动计算,一般是等于( cell.height + footer.height + header.height ) * _dataArray.count .

有个比较讨巧的办法是设置tableView的高度 = 屏幕的高度 - nav.height - tabbar.height ; 

这样,tableView的高度 就是小于 contenSize的,就可以滚动啦。

当然,上面讲的这种解决办法的前提是tableView占满整个屏幕了,还得往下滚,不是只有3  4 行那种只占半个屏幕的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容