我有一个UICollectionView
,有很多单元格。我想加载viewDidLoad
中的所有单元格,但UICollectionView
仅在可见时加载其单元格。
有什么建议吗?
答案 0 :(得分:2)
要重述此问题,集合视图单元格包含懒惰加载的图像,但您需要立即显示它们。你的问题背后的想法是强制集合视图预加载它的所有单元格。但你真的不想要细胞,你想要的是图像,所以让我们得到图像。
这个问题没有包含关于图像的位置,模型或在数据源方法中加载它们的方法的详细信息,所以这里是建议的大纲(我可以编辑,如果你更具体发布更多细节):
对于通过imageNamed:
实例化的本地图像,创建一个字典,其键是图像名称,其值是实例化的图像,在显示集合视图之前构建此字典,然后在数据源方法中使用字典
对于远程图像,集合视图数据源必须异步获取这些图像。 I gave an answer here that covers this in detail
无论如何,@ CrimsonChris对预装细胞持怀疑态度。在我看来,他的回答是不明智的。 (我认为他也这么认为,但是试图回答问题的答案)。
答案 1 :(得分:1)
在viewDidLoad
中创建单元格并将它们放在数组或字典中。然后在cellForItemAtIndexPath:
中返回正确的一个。此方法不会利用单元重用,并可能使用大量内存。但是,它可能会滚动得稍微平滑,因为不需要在滚动时设置单元格。