我有一个集合视图,可以说大约 50 个对象,每个对象都有基于其类别的三个图像之一(没关系),每个对象(变成一个单元格)也有两个 CATextLayer 对象和一个徽标(每个单元格都有一个独特的标志)。
我创建了一个包含所有上述参数的可重用单元格 - 类别图像分配给单元格 contentView.layer,徽标是一个 calayer(我在第一次创建单元格时创建它然后只是更改它的值 - 而不是每次调用 cellforitematindexpath 时添加一个 calayer)并通过相同的技术更改因单元格而异的 cattextlayer(基于数据源对象信息)。
一切正常,但在 iPhone 4 上滚动非常慢,我想那是因为对于每个被调用的单元格,我都会去获取徽标(位于目录中)。当视图加载时,基于类别的图像被实例化为一个层(所以我不需要在调用单元格时获取它们) - 那更快但是我可以用徽标做什么?我无法初始化 50 张图像并让它们吃掉我所有的记忆。
我有一个可以导致快速平滑滚动的解决方案 - 初始化用户在集合视图中看到的第一个对象,并仅在没有拖动或减速时加载单元格参数 - 而不是使用 uicollectionview.visiblecells 我需要的单元格加载。
但我不希望这样 - 我希望用户滚动并查看所有单元格参数而不是 activityIndicator。
你有其他方法吗?
顺便说一句,我曾经使用 UIKIt 来完成所有这些工作,但我转而使用 Core Animation,因为我觉得它会更快。
tnx。