gpt4 book ai didi

ios - "CGLayer no longer recommended";这是普遍共识吗?

转载 作者:可可西里 更新时间:2023-11-01 05:35:33 28 4
gpt4 key购买 nike

我编写了一个 iOS 应用程序,我在其中非常成功地使用了 CGLayer。在研究从该应用程序中获得更多性能的方法时,我看到了这篇博文:http://iosptl.com/posts/cglayer-no-longer-recommended/其中作者非常广泛地声明永远不要使用 CGLayer。单独发布一个帖子并不值得担心,但我也发现有人将此帖子视为需要遵守的内容。

没有提供真正的细节。例如,作者说“有时快,有时慢”。这让我想知道是否担心,一般来说,程序员不会正确使用这个对象。

我想这个问题是针对经验丰富的 Cocoa/Cocoa Touch 开发人员的。这有什么好处吗? CGLayer 确实是需要避免的东西吗?如果是,是否有具体的、可衡量的原因来说明为什么?

最佳答案

从我的回答开始,我想得出结论,您是否会在您的应用中使用 CGLayer 完全是您自己的设计决定。

实际情况是,如果您在屏幕上绘制某些东西,它可能不会在 iOS 平台上给您带来任何好处。在 iOS 上,基本的屏幕组合 block 是 CALayerCALayer 采用 Quartz(CG) 图形上下文将其绘制在屏幕上,这可能是由 CGLayer 本身创建的上下文。现在,CALayer 本身是硬件加速的,会尝试将任何图形内容缓存到显卡并重新使用它们。这就是我们之前使用 CGLayer 的目的。

此外,如果涉及离屏渲染,当 shouldRasterize 设置为 YES 以及在其他一些情况下,CALayer 可以执行此操作。但是,请记住,离屏合成是 CPU 在将渲染内容移交给 GPU 之前执行的另一项任务。因此,同样没有明显的赢家。

CGLayer 在创建不会在屏幕上绘制的 CG 上下文(如 PDF 上下文)时特别方便。

我不确定为什么 Apple 开发团队要求一个人完全避免使用 CGLayer。可能存在一些潜在的架构缺陷,但迄今为止尚未记录。然而,在我们确定这一点并且我们现有的应用程序是基于 CGLayer 架构设计之前,我找不到任何具体的理由来完全放弃它。

关于ios - "CGLayer no longer recommended";这是普遍共识吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738909/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com