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

Fel*_*xyz 2 iphone cocoa cocoa-touch core-animation objective-c

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

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

编辑:在iPhone OS上这样做怎么样?

Rob*_*ger 7

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

要回答您更新的问题,不,您目前无法在iPhone上执行此操作,因为NSAnimatablePropertyContaineriPhone OS中没有可用的协议,您无法animator从其他对象获取代理对象.