【问题标题】:Rasterised CAGradientLayer vs CGGradient efficiency wise光栅化 CAGradientLayer 与 CGGradient 效率比较
【发布时间】:2018-11-24 23:48:54
【问题描述】:

创建 CAGradientLayer 是在视图的现有层中添加一个新的子层(shouldRasterizetrue)。而 CGGradient 在 draw 方法中绘制视图。

使用一个比另一个有很大的速度优势吗?

【问题讨论】:

    标签: macos uikit core-graphics


    【解决方案1】:

    Core Graphics 上的 Ray Wenderlich article 中有一个注释,其中提到了两者的不同之处。事实证明两者的渲染方式有很大的不同,这是注释:

    使用 Core Graphics 绘制静态视图通常足够快,但是 如果您的视图四处移动或需要频繁重绘,您应该使用 核心动画层。核心动画经过优化,因此 GPU, 不是CPU,处理大部分处理。相比之下,CPU 处理由 Core Graphics 在 draw(_:) 中执行的视图绘制。

    由于这是一个一般说明,这也适用于 CALayers 和 draw(_:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-08
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 2013-08-05
      相关资源
      最近更新 更多