问题描述
我的理解是 UICollectionViewDataSourcePrefetching 是为 UICollectionViewDataSource 构建的,而 UICollectionViewDiffableDataSource 似乎没有关于预取的任何文档。
解决方法
您对 UICollectionViewDataSourcePrefetching
的实现是在 UICollectionView
的一个名为 prefetchDataSource
https://developer.apple.com/documentation/uikit/uicollectionview/1771768-prefetchdatasource
您需要将预取数据缓存在某处,然后从您的 cellProvider
(或 UICollectionView.CellRegistration
)访问它。在您的集合视图中,您将预取数据源分配给 prefetchDataSource
属性 - 这可能只是您的视图控制器,例如:
myCollectionView.prefetchDataSource = self
我已经将它与 UICollectionViewDiffableDataSource
一起使用,并且在滚动集合视图时查询预取数据源以获取要预取的索引路径,而实际数据由 diffable 数据源提供