【问题标题】:UICollectionView: Smooth scrolling with many visible cellsUICollectionView:使用许多可见单元格平滑滚动
【发布时间】:2015-05-26 07:52:08
【问题描述】:

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

单元格本身并不是很复杂:它们由一个(完全不透明的)彩色背景和两个标签(具有相同的背景颜色)组成。

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

  • 正确重复使用单元格,
  • 避免所有背景都透明,
  • 避免盒子阴影,
  • 避免圆角半径,并且
  • 避免使用分数单元格的位置和大小。

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

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

我还能做些什么来接近 60 fps 并同时显示多个 UICollectionViewCells?

【问题讨论】:

    标签: ios uicollectionview uicollectionviewlayout


    【解决方案1】:

    如果单元格上有阴影,请检查在单元格层上使用shouldRasterize 是否可以提高帧率。
    另外,永远不要在 - collectionView:cellForItemAtIndexPath: 方法中执行阻塞操作

    【讨论】:

      【解决方案2】:

      UICollectionView 的行为很像 UITableView

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

      【讨论】:

        【解决方案3】:

        如果它对任何人有帮助,我遇到了类似的问题,它归结为单元格上的cornerRadius 和单元格内的 UIView。我能够将它从单元格中移除,并且仍然保留我正在寻找的美学与 UIView 上的cornerRadius。最终结果平滑滚动。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-24
          相关资源
          最近更新 更多