CGLayer,CALayer和CGContext之间的区别

时间:2016-09-26 05:05:26

标签: ios core-graphics calayer cgcontext cglayer

CGLayer,CALayer和CGContext有什么区别?

2 个答案:

答案 0 :(得分:3)

所以,正如文件所说

来自QuartzCore framework

CALayer

  

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

有关详细信息,请查看https://developer.apple.com/reference/quartzcore/calayer

来自Core Graphics framework

CGLayer

  

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

有关详细信息,请查看https://developer.apple.com/reference/coregraphics/1666309-cglayer

  

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

来自Core Graphics framework

CGContext

  

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

有关详细信息,请查看https://developer.apple.com/reference/coregraphics/1666363-cgcontext

答案 1 :(得分:0)

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

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

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

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

  

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