如何一次加载UICollectionView的所有单元格?

时间:2014-06-20 13:51:15

标签: objective-c uicollectionview cells

我有一个UICollectionView,有很多单元格。我想加载viewDidLoad中的所有单元格,但UICollectionView仅在可见时加载其单元格。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

要重述此问题,集合视图单元格包含懒惰加载的图像,但您需要立即显示它们。你的问题背后的想法是强制集合视图预加载它的所有单元格。但你真的不想要细胞,你想要的是图像,所以让我们得到图像。

这个问题没有包含关于图像的位置,模型或在数据源方法中加载它们的方法的详细信息,所以这里是建议的大纲(我可以编辑,如果你更具体发布更多细节):

对于通过imageNamed:实例化的本地图像,创建一个字典,其键是图像名称,其值是实例化的图像,在显示集合视图之前构建此字典,然后在数据源方法中使用字典

对于远程图像,集合视图数据源必须异步获取这些图像。 I gave an answer here that covers this in detail

无论如何,@ CrimsonChris对预装细胞持怀疑态度。在我看来,他的回答是不明智的。 (我认为他也这么认为,但是试图回答问题的答案)。

答案 1 :(得分:1)

viewDidLoad中创建单元格并将它们放在数组或字典中。然后在cellForItemAtIndexPath:中返回正确的一个。此方法不会利用单元重用,并可能使用大量内存。但是,它可能会滚动得稍微平滑,因为不需要在滚动时设置单元格。