【发布时间】:2018-11-24 23:48:54
【问题描述】:
创建 CAGradientLayer 是在视图的现有层中添加一个新的子层(shouldRasterize 为 true)。而 CGGradient 在 draw 方法中绘制视图。
使用一个比另一个有很大的速度优势吗?
【问题讨论】:
标签: macos uikit core-graphics
创建 CAGradientLayer 是在视图的现有层中添加一个新的子层(shouldRasterize 为 true)。而 CGGradient 在 draw 方法中绘制视图。
使用一个比另一个有很大的速度优势吗?
【问题讨论】:
标签: macos uikit core-graphics
Core Graphics 上的 Ray Wenderlich article 中有一个注释,其中提到了两者的不同之处。事实证明两者的渲染方式有很大的不同,这是注释:
使用 Core Graphics 绘制静态视图通常足够快,但是 如果您的视图四处移动或需要频繁重绘,您应该使用 核心动画层。核心动画经过优化,因此 GPU, 不是CPU,处理大部分处理。相比之下,CPU 处理由 Core Graphics 在 draw(_:) 中执行的视图绘制。
由于这是一个一般说明,这也适用于 CALayers 和 draw(_:)。
【讨论】: