UICollectionView:使用许多可见单元格进行平滑滚动

时间:2015-03-23 10:47:02

标签: ios uicollectionview uicollectionviewlayout

我正在尝试优化我的UICollectionView(使用自定义布局)的滚动速度和平滑度,该约有400个单元格,其中150个单元格同时在屏幕上可见。

细胞本身并不复杂:它们由(完全不透明)彩色背景和两个标签(背景颜色相同)组成。

到目前为止,我已经阅读了数十篇关于优化速度的帖子

  • 正确重用细胞,
  • 避免所有背景的透明度,
  • 避免盒子阴影,
  • 避免转角半径,
  • 避免分数细胞位置和大小。

尽管进行了所有这些优化,我仍然无法以60 fps顺畅滚动。我在细胞出列后也尝试了层光栅化(shouldRasterize),但这对性能产生了负面影响。

减少同时可见的单元格数量是唯一可以提高性能的单元格 - 滚动完全平滑,单元格更少。不幸的是,这不是一种选择。

我可以做些什么来接近60 fps,同时可以看到很多UICollectionViewCell个?

3 个答案:

答案 0 :(得分:3)

如果您在单元格上有阴影,请检查在单元格图层上使用shouldRasterize是否可以提高帧速率 此外,永远不要在- collectionView:cellForItemAtIndexPath:方法

中执行阻止操作

答案 1 :(得分:1)

UICollectionView的行为与UITableView

非常相似

使用此链接作为参考:UITableView Optimization

答案 2 :(得分:0)

如果它对任何人有帮助,我遇到了类似的问题,那就是单元格中的cornerRadius和单元格内的UIView。我能够将它从牢房中移除,并且仍然保持着我在寻找UIView上的cornerRadius的审美。最终结果平滑滚动。