2009-11-20 56 views
0

我刚刚开始编写一些核心动画代码,并且我刚刚花了一个令人沮丧的一天试图找出一个特定的问题。CALayer过滤器和界限

我有两个层支持的观点,即一起构成一个向导/助理类型用户界面:

1),其与一个边缘到边缘的梯度和一个不错的图像充满整个窗口的自定义的背景图在左侧 2)右侧较小的框架视图,当您点击“向前”/“向后”按钮时,您可以用作更改对话框选项的主页:标签,控件,按钮等。

I 've'偷走了一些示例代码,这些代码激活了照明滤波器并因此产生脉动效应。

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

我茫然地明白怎么可以如此,我期望通过控制应用到它下面的层过滤器不受影响。当然,与较小视图相关联的CALayer应该在背景视图图层的顶层上合成,并且其层上的所有内容都应该保持不受影响!?

我玩过各种场景,很明显我错过了一些非常基本的东西......请帮忙!

回答

1

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

取决于正是你正在尝试做的,你可能有一个背景过滤器,而不是内容过滤器更好的运气。如果我正确理解您的设置,您应该能够在右侧视图上设置背景过滤器,而不是在背景视图上设置内容过滤器。

+0

是的,在过去的几个小时里我一直在反复思考这个问题,然后有一个“aha”时刻。我曾假设过滤器不会被“继承”到树上,但显然并非如此。尽管我当时不明白为什么这与在父视图上设置内容过滤器有什么不同,但我尝试过后台过滤器路由。当然是因为“继承”。不幸的是,如果我设置了背景过滤器而不是内容过滤器,我的动画代码片段似乎不工作,所以我放弃了这一点,可能有点早了。我会再去一次。 – Frank 2009-11-20 22:44:49