将Core Animation与CALayers以外的对象一起使用

时间:2010-03-01 00:14:06

标签: iphone objective-c cocoa cocoa-touch core-animation

我很确定我在网络上看过这个问题的讨论,但现在我似乎找不到任何东西。问题很简单:有没有办法使用例如CABasicAnimation来动画一个不是'CALayer'的对象的属性? (比如'AVAudioPlayer'上的'volume'属性。)

如果没有,除了子类化'CALayer'之外,有没有办法让它工作?也许某些协议符合?

编辑:如何在iPhone OS上执行此操作?

1 个答案:

答案 0 :(得分:7)

你确实可以做到这一点。您的对象必须实现NSAnimatablePropertyContainer协议,并为要在CAAnimation类方法中设置动画的每个属性返回有效的+defaultAnimationForKey:对象。

要回答您更新的问题,不,您目前无法在iPhone上执行此操作,因为iPhone OS中没有NSAnimatablePropertyContainer协议,您无法获得animator代理对象来自其他物体。