今天遇到一个问题,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 行那种只占半个屏幕的。