Cocoa Layer-Backed Views:什么时候不能在窗口内容视图上启用图层支持?

时间:2013-02-13 01:31:13

标签: objective-c macos cocoa core-animation calayer

此行显示在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. 它引起了很多小故障(特别是因为我做了很多自定义绘图)。
  3. 那么,在这里和那里只为几个按钮启用图层支持是否安全,而不是为整个视图层次结构启用它,或者我是否正在调查灾难?谢谢!

1 个答案:

答案 0 :(得分:2)

是的,没关系。我已经看过Apple的以前的文档,告诉你在你的视图中支持层支持,这就是你列出的确切原因。

整个报价是:

  

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

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

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