Cocoa 我可以在没有CALayers的情况下使用核心动画吗?

Cocoa 我可以在没有CALayers的情况下使用核心动画吗?,cocoa,core-animation,Cocoa,Core Animation,是否可以使用核心动画来更改CALayers属性以外的内容?我想使用一个简单的属性动画来更改模型类上的值。大概是这样的: CABasicAnimation* anim = [CABasicAnimation animation]; anim.keyPath = @"someProperty"; anim.fromValue = [NSNumber numberWithFloat: 0.0]; anim.toValue = [NSNumber numberWithFloat: 1.5]; anim.

是否可以使用核心动画来更改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 ] 直到动画结束。

层类(Calayle及其子类)是核心动画的基础。这些类提供用于显示的内容。所以,如果不使用CALayers,就不能使用核心动画

我建议通读一遍。根据您所描述的内容,您希望使用核心动画类CABasicAnimation来通知您的模型类在动画持续时间内的特定值应该是多少。Core Animation的类不是这样设计的,也不是与Core Animation框架之外的任何东西一起使用的


您真正需要的是一个类/库,它可以从纯数学的角度而不是动画的角度为您提供值之间的定时插值。也许有一些开源代码可以为您做到这一点。

您可以使用在CALayer上运行的CABasicAnimation,而无需使用CALayer本身;但是要查询它的-(id)presentationModel。您甚至可以将自己的关键点添加到CALayer中,以便以这种方式设置动画