【问题标题】:Difference between CGLayer, CALayer and CGContextCGLayer、CALayer和CGContext的区别
【发布时间】:2017-02-03 08:04:31
【问题描述】:

CGLayer、CALayer、CGContext有什么区别?

【问题讨论】:

标签: ios core-graphics calayer cgcontext cglayer


【解决方案1】:

CGLayer 中的 CG 代表核心图形,CALayer 中的 CA 代表核心动画。 这些确实令人困惑。

CGLayer 由CoreGraphics.framework 提供,主要用于绘制圆形、矩形、直线等各种几何形状的矢量对象。这为 CPU 渲染 IIRC 提供了高性能图形支持。

CALayer(由 Quartz 框架提供)仅用于“视图”中的内容动画。这是基于 OpenGL 的,主要使用 GPU。

CGContext(再次由 Quartz 框架提供)- 此内容直接从 doc 复制

图形上下文包含绘图参数和所有设备特定的 将页面上的绘画渲染到目的地所需的信息, 目标是否是应用程序中的窗口、位图图像、 PDF 文档或打印机。您可以通过以下方式获取图形上下文 使用 Quartz 图形上下文创建函数或使用 Carbon、Cocoa 或 Printing 中提供的高级函数 构架。 Quartz 提供了各种风格的创建函数 Quartz 图形上下文,包括位图图像和 PDF。可可 框架提供了获取窗口图形上下文的函数。 打印框架提供了获取图形的函数 适合目标打印机的上下文。

【讨论】:

    【解决方案2】:

    所以,正如文档所说

    CALayer来自QuartzCore framework

    CALayer 类管理基于图像的内容并允许您 对该内容执行动画。层通常用于提供 视图的后备存储,但也可以在没有视图的情况下使用 显示内容。

    更多信息请关注https://developer.apple.com/reference/quartzcore/calayer

    CGLayer来自Core Graphics framework

    图层对象对于离屏绘图很有用,可以用在很多地方 与使用位图上下文的方式相同。实际上,一个 CGLayer 对象是比位图上下文更好的表示。使用 CGLayer 对象可以提高性能,尤其是当您需要 捕捉你反复标记的一幅画(使用相同的 比例因子和方向)

    更多信息请关注https://developer.apple.com/reference/coregraphics/1666309-cglayer

    注意 CGLayer 对象与核心动画层无关(CALayer 对象)。

    CGContext来自Core Graphics framework

    图形上下文包含绘图参数和所有设备特定的 将页面上的绘画渲染到目的地所需的信息, 目标是否是应用程序中的窗口、位图图像、 PDF 文档或打印机。

    更多信息请关注https://developer.apple.com/reference/coregraphics/1666363-cgcontext

    【讨论】:

      猜你喜欢
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      相关资源
      最近更新 更多