UICollectionViewDiffableDataSource 是否与 UICollectionViewDataSourcePrefetching 一起使用?

问题描述

我的理解是 UICollectionViewDataSourcePrefetching 是为 UICollectionViewDataSource 构建的,而 UICollectionViewDiffableDataSource 似乎没有关于预取的任何文档。

解决方法

您对 UICollectionViewDataSourcePrefetching 的实现是在 UICollectionView 的一个名为 prefetchDataSource

的单独属性上设置的

https://developer.apple.com/documentation/uikit/uicollectionview/1771768-prefetchdatasource

您需要将预取数据缓存在某处,然后从您的 cellProvider(或 UICollectionView.CellRegistration)访问它。在您的集合视图中,您将预取数据源分配给 prefetchDataSource 属性 - 这可能只是您的视图控制器,例如:

myCollectionView.prefetchDataSource = self

我已经将它与 UICollectionViewDiffableDataSource 一起使用,并且在滚动集合视图时查询预取数据源以获取要预取的索引路径,而实际数据由 diffable 数据源提供