是否可以使用核心动画来更改 CALayers 属性以外的其他内容?我想使用一个简单的属性动画来轻松更改模型类上的值。像这样的事情:
CABasicAnimation* anim = [CABasicAnimation animation];
anim.keyPath = @"someProperty";
anim.fromValue = [NSNumber numberWithFloat: 0.0];
anim.toValue = [NSNumber numberWithFloat: 1.5];
anim.duration = 1.0;
anim.timingFunction = [CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
然后调用诸如[anim update]
之类的内容,直到动画完成。
最佳答案
图层类(CALayer 及其子类)是核心动画的基础。这些类提供用于显示的内容。所以,不,如果不使用 CALayers,就无法使用核心动画。
我建议通读Apple's description of Core Animation 。根据您的描述,您希望使用核心动画类 CABasicAnimation 来通知您的模型类在动画持续时间内的某个值应该是什么。 Core Animation 的类并不是为了以这种方式使用而设计的,也不是为了与 Core Animation 框架之外的任何其他内容一起使用。
您真正需要的是一个类/库,它可以从纯粹的数学角度而不是动画的角度为您提供值之间的定时插值。也许有一些开源代码可以为您做到这一点。
关于cocoa - 我可以在没有 CALayers 的情况下使用 Core Animation 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2636005/