insertSections: withRowAnimation:和reloadData遇到的坑

一般展示数据的页面都有一个上拉加载更多的功能,当请求下来的数据添加到数据源之后,我们需要进行刷新界面,这时如果使用reloadData会比较消耗性能,最简单的方式是insertSections: withRowAnimation:,但是当我们调用这些方法时可能会遇到一些奇怪的问题。

(本来录制的视频展示的bug,奈何无法上传,只能用文字描述一下了,还请大家见谅)

reloadData遇到的问题:界面会跳动一下,这就让我们很不爽,严重影响了用户体验。

insertSections遇到的问题: 界面也会跳动,假设我们设置了sectionFooterView或者设置了sectionHeaderView导致在cell上显示了多余的sectionFooterView/sectionHeaderView。

究其原因是由于我们设置了tableView.estimatedRowHeight的原因导致,当我们刷新的时候会预先使用预估的高度,但是我们的实际高度可能不是这个,最终导致的这个问题。

如果我们没有用代码设置tableView.estimatedRowHeight,那就是xib的问题

insertSections: withRowAnimation:和reloadData遇到的坑_第1张图片
只需将automatic取消选中即可

只需将automatic取消选中即可。

你可能感兴趣的:(insertSections: withRowAnimation:和reloadData遇到的坑)