我很困惑 CGLayerCALayer. 。它们看起来相似,那么为什么有单独的实现?与 CGLayerCALayer?

有帮助吗?

解决方案

它们完全不同,不兼容。

绝对清楚:

这是 严格来说是巧合 两者都使用了“图层”一词 名称;他们是 完全无关.

CGLAYERS是“特殊”“高性能”的东西。

您可以将它们视为“像位图一样,但更好”。

苹果坐下来说:“我们厌倦了使用位图的人,让我们做一些更好的事情!” :-)

确实,您只与Cglayers一起工作 屏幕外.

重复一遍,CGLAYERS已完全在屏幕外使用。

一旦准备就绪,您就可以将它们爆炸到您的实际屏幕上(也就是说:将它们爆炸为您的观点之一)。

(然而: :请注意:CGLAYERS经常使用“单独”。当我说它们被“单独使用”时,我的意思是将其用于:图像处理或数学计算。在这种情况下,从未在屏幕上看到过cglayers,他们与屏幕世界完全没有联系。)

相比之下 ... 卡莱斯只是“在”视图中的事物。 Calayers就是视图的工作方式。

因此,这两个概念是完全不同的。

卡莱斯只是“在”观点中的事物。 相比之下,CGLAYERS是Apple酷的“屏幕外,高性能,计算机械”。

需要明确的是,CGLAYERS与视图完全没有联系,也没有与观点的关联。 (当然,您可以将Cglayer粘贴到视图中,但是您可以在视图中粘贴“排版”或“图像”。版式和图像不是视图,而cglayers也不是视图。)

典型的例子是:

您想绘制一次复杂的东西,然后在屏幕上多次绘制该东西。该问题的答案正是cglayers。您的“工作区”将是一名CGLAYER;然后,您可以将其闪烁到打印机,屏幕上或其他任何内容。

要明确,我认为苹果本应该选择了另一个名称 ...

好名字将是“ cgcalculationspace”。

该名称包含“ layer”一词的事实使您想到nslayers。

重复:无论如何,绝对没有任何关系。 CGLAYERS甚至与层之间不隐约相关。

根本没有连接。名称中使用字母“层”确实令人困惑 - 真可惜!

cGlayers应该称为“工作区”或“计算范式”或类似的东西。

希望它能有所帮助,并希望您仍在阅读!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top