在UICollectionView中重新加载数据后保持collectionview速度

时间:2017-11-10 12:11:25

标签: ios swift uicollectionview

我正在使用UICollectionView实现聊天应用。最初我只获取100条消息。当用户滚动时,我会获取更多消息,然后重新加载集合视图。为了保持滚动位置,我设置内容偏移但滚动停止。如何在重新加载UICollectionView之后保持滚动速度,这样用户就不会感觉到混蛋?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用iOS10中引入的prefetchDataSource。

UICollectionView Prefetch Data Source in iOS 10?

答案 1 :(得分:0)

有几种方法可以解决这个问题。

  1. 您不使用reloadData()而是使用insertItemsAtIndexPaths:,这样您就无法重建整个表格,只会构建所需的项目。

  2. 当使用点击集合视图的特定点时,您会加载其他数据。在willDisplayCell方法中,您可以检查单元格的indexPath是否接近数据源中的最后一个索引并加载其他行。用户将滚动到最后一项,所有内容都已存在,所以您不必担心。

  3. 根据我的经验,最好的方法是结合使用这两种方法。因为一般情况下,根据您的单元格布局,偶尔使用reloadData()可能会非常有用。