我想知道是否有人可以准确区分这些?据我了解,Core Graphics只是一个“框架包”,其中包含Quartz Core和Quartz 2D。但是我不确定Quartz 2D是否真的是Quartz Core?也许有人可以在那里画线?造成这些差异的原因是什么?
查看文档时,我看到Quartz Core仅列出了所有Core Animation素材。那么石英核心==核心动画?
Answers:
Quartz 2D API是Core Graphics框架的一部分,因此您可能会看到Quartz被称为Core Graphics或简称为CG。
在Mac / iPhone上参考二维绘图时,即使在技术上不正确,我也倾向于交替使用Quartz和Core Graphics。
在iPhone上的石英核心框架包含的类和核心动画支持元素,并且还包含用于核心形象的项目。
Quartz 2D是Core Graphics框架的API,可实现绘图。
Quartz Core是一个框架,其中包含用于动画和图像处理的API。
CoreGraphics.framework
QuartzCore.framework
Quartz.framework
仅OS X
这三个框架都在下面使用OpenGL,因为iOS或OS X中的所有绘图都在某个时候通过OpenGL。有关详细信息,请参见“ Mac OS X技术概述”的“媒体层框架”部分。
您可能听说过的其他“石英”技术:
这些是GPU渲染的内部实现,而不是API。他们决定是在CPU中创建窗口缓冲区,仅使用OpenGL作为纹理上传(默认设置),还是使用OpenGL完成整个渲染,但这并不总是会提高性能。您可以使用QuartzGLEnable Info.plist设置在两者之间切换。有关说明,请参阅John Siracusa对Mac OS X 10.4 Tiger的评论,第13和14页。
“ Quartz”和“ Core”是随机散布在框架和API上的营销名称。如果他们想创建一个令人困惑的命名混乱,他们就成功了。
但是请注意,默认情况下,新的单视图应用程序将链接CoreGraphics框架,但不会链接QuartzCore。因此,如果您进行任何操作,CAEAGLLayer
例如,您可能会很快收到“未知对象”错误。
.layer
UIView上使用属性时。例如,要更改corner radius
您需要导入QuartzCore框架。