CALayer过滤器和边界

时间:2009-11-20 17:11:33

标签: cocoa core-animation quartz-graphics quartz-2d

我刚刚开始编写一些核心动画代码,我只是花了一个令人沮丧的一天试图找出一个特定的问题。

我有两个图层支持的视图,它们共同组成一个向导/助理风格的用户界面:

1)自定义背景视图,使用边对边渐变填充整个窗口,左侧有漂亮的图像 2)右侧较小的框架视图,当您单击“前进”/“后退”按钮时,它可以作为更改对话框选项的主页:标签,控件,按钮等。

我“窃取”了一些动画照明过滤器的示例代码,从而产生了脉动效果。

我已将动画和过滤器添加到自定义背景视图的CALayer中。它工作正常,但较小的框架视图中的控件也是脉动的!

我无法理解这种情况如何,我希望控件不受应用于其下方图层的过滤器的影响。当然,与较小视图相关联的CALayer应该在背景视图图层的顶部上进行合成,并且其图层上的所有内容都应保持不受影响!?

我玩过各种各样的场景,我很清楚我在这里遗漏了一些非常基本的东西..请帮助!

1 个答案:

答案 0 :(得分:1)

CALayer的内容过滤器会影响图层及其子图层。从你的问题来看,听起来右侧的视图是背景视图的子视图,它有效地使其图层成为背景图层的子图层,过滤器也将应用于它。

根据您的具体操作,您可能会更好地使用后台过滤器而不是内容过滤器。如果我理解您的设置正确,您应该能够在右侧视图上设置背景过滤器,而不是在背景视图上设置内容过滤器。