【问题标题】:Using Core Animation with objects other than CALayers将核心动画与 CALayers 以外的对象一起使用
【发布时间】:2010-03-01 11:12:07
【问题描述】:

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

如果没有,除了继承“CALayer”之外,还有其他方法可以让它工作吗?也许要遵守一些协议?

编辑:在 iPhone 操作系统上执行此操作怎么样?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢罗伯!现在是后续问题:这在 iPhone OS 上是否可行?
    • 关于如何实现 NSAnimatablePropertyContainer 的任何指针?特别是 - (id)animator;方法?
    • 同一作者的类似回答更详细:stackoverflow.com/a/10168831/377384(感谢 Rob!)
    猜你喜欢
    • 1970-01-01
    • 2010-09-29
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多