iOS 11 tableNode的insertRowsAtIndexPaths:withRowAnimation:方法出现刷新界面闪动且无法定位到之前位置问题

在做iOS11适配时,发现iOS11以下insertRowsAtIndexPaths:withRowAnimation:方法出现刷新界面闪动且无法定位到之前位置问题。代码如下:

iOS 11 tableNode的insertRowsAtIndexPaths:withRowAnimation:方法出现刷新界面闪动且无法定位到之前位置问题_第1张图片

此方法作用是在tableNode列表中插入一行或多行cell,且停留在之前位置,在iOS 11之前代码有效,但iOS 11出现界面闪动,且滑动到顶部位置,无法满足设计需要。

查找iOS 11更新说明才知道,estimatedRowHeight属性值发生了变化,iOS 11之前的0,iOS 11之后,这个值默认为44。

iOS 11默认打开了estimatedRowHeight估算高度功能,当tableNode创建完成后,contentSize为estimatedRowHeight(默认值为44)*cell的数量,不需要遍历每一个cell的heightForRowAtIndexPath来计算了,这样就会造成contentSize不准确,导致加载更多是UI闪动,无法定位到准确位置等问题。

解决这个问题,需要如下设置,即可:

你可能感兴趣的:(iOS 11 tableNode的insertRowsAtIndexPaths:withRowAnimation:方法出现刷新界面闪动且无法定位到之前位置问题)