【问题标题】:Performance Comparision visual decoration on iPhone via various methods通过各种方法在 iPhone 上进行性能比较视觉装饰
【发布时间】:2012-01-27 06:27:45
【问题描述】:

假设我们需要在iOS中装饰一个UIButton、UIView等我们使用以下方法,

  1. 使用 CALayer 属性,如borderWidth、CATransform、CAGradientLayer 等。
  2. 使用UIView的drawRect:方法,通过CG进行我们的装饰画。
  3. 仅使用已准备好的图像绘制在 UIView 或其图层的背景上。

现在,我的问题是在上述 3 个问题中,哪一个需要更少的处理时间并提供更快的速度(性能提升)?

正如我所注意到的,在不断更新(视觉上)的视图上,例如 tableview;即使应用了layer.shouldRasterise = YES,性能仍然很差。而如果cornerRadius处于活动状态,那么性能会变得更差。

谢谢大家。

【问题讨论】:

    标签: ios performance


    【解决方案1】:

    这取决于情况,如果您不关心内存消耗 - 图像应该效果最好,另一方面,如果您想最大限度地减少内存占用 - CALayer+drawing 可以为我完成这项工作。

    与cornerRadius 和其他类似属性一样 - 您可以通过绘图轻松完成相同的工作,这样会更有效率。

    还可以查看最新的 WWDC 会议,其中有一个(我不记得名字了)关于 UIKit/CoreGraphics 性能调整。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2011-07-24
      • 2010-12-27
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 2011-08-12
      相关资源
      最近更新 更多