我很确定我在网络上看过这个问题的讨论,但现在我似乎找不到任何东西。问题很简单:有没有办法使用例如CABasicAnimation
来动画一个不是'CALayer'的对象的属性? (比如'AVAudioPlayer'上的'volume'属性。)
如果没有,除了子类化'CALayer'之外,有没有办法让它工作?也许某些协议符合?
编辑:如何在iPhone OS上执行此操作?答案 0 :(得分:7)
你确实可以做到这一点。您的对象必须实现NSAnimatablePropertyContainer
协议,并为要在CAAnimation
类方法中设置动画的每个属性返回有效的+defaultAnimationForKey:
对象。
要回答您更新的问题,不,您目前无法在iPhone上执行此操作,因为iPhone OS中没有NSAnimatablePropertyContainer
协议,您无法获得animator
代理对象来自其他物体。