首页 > 解决方案 > UICollectionViewDiffableDataSource 实时更新

问题描述

我想问什么是使用这个 UICollectionViewDiffableDataSource 的正确方法......我需要使用它来从 api 进行实时更新。我得到添加,删除,更改然后我必须使用这些数据中的项目制作部分,并按照一些规则对部分中的部分和项目进行排序......我想问我是否应该做一些逻辑来每次我更新快照从 api 获取更新,或者我可以创建新快照并将其应用于数据源。如果我应用新快照会怎样?是否有一些比较快照的机制?或者它重新加载整个collectionView?谢谢。

标签: swiftuicollectionview

解决方案


您应该在每次 API 更新后创建一个新快照,并将其应用到 diffable 数据源。

diffable 数据源会比较快照中每个项目标识符的哈希值,看看数据是否发生了变化,并相应地更新集合视图。如果数据保持不变,它将具有相同的哈希值,因此不会对 collectionview 进行更新。


推荐阅读