【问题标题】:UICollectionView slow scrolling - creating cellsUICollectionView 缓慢滚动 - 创建单元格
【发布时间】:2013-04-04 09:43:41
【问题描述】:

我正在研究一个项目的集合视图。由于某种原因,我的滚动速度很慢,我认为这是因为我在 cellForitemAtindex 委托方法中进行了大量处理。我应该让 UICollectionView 一次创建所有单元格,而不是在滚动时创建单元格吗?或者我应该自己将单元格缓存在某个数组中,然后在用户滚动时从那里加载?我能想到的只有这2个,还有什么我可以做的吗?感谢您的帮助。

【问题讨论】:

  • 查看文档,看看是否有 UITableView 中的 dequeueReusableCell 机制。

标签: objective-c uicollectionview


【解决方案1】:

在索引路径项的单元格内,您需要获取这样的单元格

UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellID" forIndexPath:indexPath];

而不是从头开始。如果您为单元格使用自定义子类,请通过调用 registerClass:forCellWithReuseIdentifier:\

将其注册到集合视图

您不负责分配、初始化或缓存可重用单元格,集合视图会为您完成。

【讨论】:

  • 这是处理 UICollectionViewCell 对象出队的方法。我有一个包含 100 多个单元的项目,其中都有复杂的视图,并且系统在缓存和平滑显示所有内容方面做得很好。很可能您的 UICollectionViewCell 中的一个视图正在做一些计算成本很高的事情(例如,显示 1000 像素 x 1000 像素的图像)。在模拟器中打开颜色混合图层并首先查看那里。然后查看所有代码。这将是你在牢房内所做的事情。
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多