调用 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
。
因此 UICollectionViews 公开了方法 cellForItem(at:)
,它允许我们访问包含在集合视图中的单元格。
我们还知道 collectionView 使用其数据源的 collectionView(_:cellForItemAt:)
方法来创建和配置其单元格。
但是,使用断点显示 collectionView(_:cellForItemAt:)
在调用 cellForItem(at:)
时从未被调用。这里发生了什么?集合视图是否必须访问其数据源才能知道 return 的单元格?它是否在某个时刻缓存了它的所有单元格,如果是,缓存发生在什么时候?
cellForItem(at:)
returns nil
如果单元格不在屏幕上,则不需要调用 collectionView(_:cellForItemAt:)
来获取单元格。如果它在屏幕上,它只是 returns 单元格,否则 nil
。