当前在做的一个项目需要监听tableView滚动的方向,需要用到TableView的contentOffset.Y属性(Cell高度皆为130)。
但当我在tableView上拉刷新后添加了新的Item,向上滚动发现在iOS11之后,每当需要刷新一个新的Cell,scrollView的contentOffsetY总会出现波动。详细如图
遇到新的Cell后出现位置Y波动(向上滑动)最后发现原来iOS11之后系统会默认当前Cell以上的所有Cell高度都为44,从而计算当前scrollView所在的位置。所以需要另外添加以下代码
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { return 130;}
既能告诉系统所有Cell的固定高度,滚动方向监听正常问题解决。
网友评论