【问题标题】:UITableView cornerRadius with border performance issues on iOSUITableViewcornerRadius 在 iOS 上存在边框性能问题
【发布时间】:2012-06-27 11:15:09
【问题描述】:

在启用cornerRadiusborderWidthborderColor 的情况下,我注意到UITableView 的滚动性能很有趣。

self.tableView.layer.cornerRadius = 10.f;
self.tableView.layer.borderWidth = 1.0f;
self.tableView.layer.borderColor = [UIColor whiteColor].CGColor;

如果我删除borderWidthborderColor,那么滚动就可以达到 60 FPS。只要我将这两个属性添加到图层 FPS 滴。

有没有人建议或解释为什么会发生这种奇怪的行为?

非常感谢!

【问题讨论】:

  • 因为它需要更多的绘图操作。
  • 我想是的。通过设置borderWidthborderColor 它添加了额外的操作来绘制边框。 cornerRadius 也一样。
  • 为什么会出现问题,因为边框不滚动,只有单元格...?
  • 你也有阴影吗?
  • 嗯,我注意到使用阴影(没有 shadowPath)时性能会大幅下降,但从来没有使用过这个。你是用哪种方法设置的?

标签: iphone ios uitableview scroll cornerradius


【解决方案1】:

CALayer 具有针对此类性能问题的 shouldRasterize 属性。 设置好了

self.tableView.layer.shouldRasterize = YES;

这一行节省了我很多时间和工作。

【讨论】:

    【解决方案2】:

    我刚刚发现带有borderWidth 的cornerRadius 的tableView 性能下降了很多。所以我改为 5.f 而不是 10.f 半径,性能有了惊人的提高。仍然不完美,但明显更好......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多