调用 cellForItem(at:) 时,UICollectionView 是否在后台使用其数据源?

Does a UICollectionView use its dataSource under the hood when cellForItem(at:) is called?

因此 UICollectionViews 公开了方法 cellForItem(at:),它允许我们访问包含在集合视图中的单元格。

我们还知道 collectionView 使用其数据源的 collectionView(_:cellForItemAt:) 方法来创建和配置其单元格。

但是,使用断点显示 collectionView(_:cellForItemAt:) 在调用 cellForItem(at:) 时从未被调用。这里发生了什么?集合视图是否必须访问其数据源才能知道 return 的单元格?它是否在某个时刻缓存了它的所有单元格,如果是,缓存发生在什么时候?

cellForItem(at:) returns nil 如果单元格不在屏幕上,则不需要调用 collectionView(_:cellForItemAt:) 来获取单元格。如果它在屏幕上,它只是 returns 单元格,否则 nil