2016-09-26 66 views
2

CGLayer,CALayer和CGContext有什么不同?CGLayer,CALayer和CGContext的区别

+1

http://stackoverflow.com/questions/4458812/whats-the-difference-and-compatibility-of-cglayer-and-calayer –

+0

http://stackoverflow.com/questions/14658750/cgcontext-vs -calayer –

回答

2

所以,作为一个文件说,

的CALayerQuartzCore framework

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

欲了解更多信息,请看看https://developer.apple.com/reference/quartzcore/calayer

CGLayerCore Graphics framework

层对象是屏幕外绘制有用,可以在很大程度上 相同的方式使用一个位图上下文可以使用。实际上,CGLayer对象比位图上下文更好。使用 CGLayer对象可以提高性能,尤其是当你需要 拍摄一张图纸的,可重复邮票(使用相同的 比例因子和方向)

欲了解更多信息,请看看https://developer.apple.com/reference/coregraphics/1666309-cglayer

注意CGLayer对象与Core Animation图层无关(CALayer 对象)。

CGContext上Core Graphics framework

图形上下文包含绘图参数和需要以呈现页面到目标上的油漆的所有设备特定的 信息, 是否目的地是一个窗口在应用程序中,位图图像,PDF文档或打印机。

欲了解更多信息,请看看https://developer.apple.com/reference/coregraphics/1666363-cgcontext

0

CG在CGLayer代表核芯显卡和CA在CALayer的核心动画。 这些确实令人困惑。

CGLayer由CoreGraphics.framework提供,主要用于绘制圆形,矩形,直线等各种几何形状的矢量对象。这为CPU渲染IIRC提供了高性能图形支持。你可以在视图中使用CALayer(由Quartz框架提供)。这是基于大多数使用GPU的OpenGL。

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

图形上下文包含绘图参数和需要以呈现页面上的油漆到目的地的所有设备特定的 信息, 目标是应用程序中的窗口,位图图像,PDF文档还是打印机。您可以使用Quartz图形上下文创建功能或使用Carbon,Cocoa或Printing框架中提供的 高级功能获得 的图形上下文。 Quartz为各种不同风格的石英图形上下文(包括位图图像和PDF)提供创建功能。可可 框架提供了获取窗口图形上下文的功能。 打印框架提供的功能可获取适用于目标打印机的图形 上下文。