我很确定我在网上看到过有关此问题的讨论,但现在我似乎找不到任何内容。问题很简单:有没有一种方法可以使用例如 CABasicAnimation 来为非“CALayer”对象上的属性设置动画? (例如“AVAudioPlayer”上的“volume”属性。)
如果没有,除了子类化“CALayer”之外,还有其他方法可以使其工作吗?也许需要遵守一些协议(protocol)?
编辑:在 iPhone 操作系统上执行此操作怎么样?
最佳答案
你确实可以做到这一点。您的对象必须实现 NSAnimatablePropertyContainer
协议(protocol)并为您想要在 +defaultAnimationForKey:
类方法中设置动画的每个属性返回一个有效的 CAAnimation
对象。
要回答您更新的问题,不,您目前无法在 iPhone 上执行此操作,因为 iPhone 操作系统中没有可用的 NSAnimatablePropertyContainer
协议(protocol),并且您无法获取 animator
来自其他对象的代理对象。
关于iphone - 将核心动画与 CALayers 以外的对象一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353249/