UICollectionViewDiffableDataSource 实时更新

Posted

技术标签:

【中文标题】UICollectionViewDiffableDataSource 实时更新【英文标题】:UICollectionViewDiffableDataSource live updates 【发布时间】:2021-02-02 11:17:07 【问题描述】:

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

【问题讨论】:

有比较快照的机制吗?是的,这是可区分数据源的主要好处。 【参考方案1】:

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

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

【讨论】:

谢谢,如果对象内部或作为父对象属性的另一个对象内部发生一些变化,您知道它是否也可以处理?看起来我没有更新用户界面...看起来它只处理添加、删除和移动...

以上是关于UICollectionViewDiffableDataSource 实时更新的主要内容,如果未能解决你的问题,请参考以下文章