6

此行出现在 Apple 的核心动画文档中(链接:http: //developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/SettingUpLayerObjects/SettingUpLayerObjects.html#//apple_ref/doc/uid/TP40004514- CH13-SW5 )

It is recommended that you enable layer support in the content view 
of your window whenever possible.

我的问题是:我什么时候不能安全地做到这一点?

解释:

我的 UI 中有一些按钮,我想使用 Core Animation 进行动画处理(旋转)。为此,它们需要有层支持。现在,我只有按钮层支持,而我的其余视图则没有。这工作正常。但是,Apple 并没有详细说明上面的句子,所以我担心动画可能会在未来的版本中中断,因为父视图没有层支持。

我不想分层我的整个视图层次结构有两个原因:

  1. 它使我的内存占用增加了大约 230%。
  2. 它会导致很多小故障(特别是因为我做了很多自定义绘图)。

那么,在这里和那里只为几个按钮启用图层支持而不为整个视图层次结构启用它是安全的,还是我在与灾难调情?谢谢!

4

1 回答 1

3

是的,没关系。我看过 Apple 以前的文档,这些文档告诉您在启用视图层支持时要谨慎,因为您列出的确切原因。

整个报价是:

在您的 nib 文件中,使用 View Effects 检查器为您的视图启用图层支持。检查器显示所选视图及其子视图的复选框。建议您尽可能在窗口的内容视图中启用图层支持。

这是否意味着对于任何给定的视图,当您打开视图效果检查器时,您会获得当前视图及其所有子视图的复选框?如果是这样,也许文档只是意味着您应该转到窗口的内容视图并检查每个需要它的视图的图层支持复选框,而不是在子视图的设置中。

这些天我主要使用 iOS,通常只是创建一个插座并调用 setWantsLayer:如果我想为 Mac OS 视图设置动画。

于 2013-02-13T02:21:56.980 回答