我可以在没有CALayers的情况下使用Core Animation吗?

时间:2010-04-14 08:46:12

标签: cocoa core-animation

是否可以使用Core Animation更改除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]之类的内容,直到动画结束。

2 个答案:

答案 0 :(得分:1)

图层类(CALayer及其子类)是Core Animation的基础。这些类提供显示内容。所以,如果没有使用CALayers,你就不能使用Core Animation。

我建议阅读Apple's description of Core Animation。根据您的描述,您希望使用Core Animation类CABasicAnimation来通知您的模型类在动画持续时间过程中应该具有的特定值。 Core Animation的类不是以这种方式使用的,或者与Core Animation框架之外的任何其他类一起使用。

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

答案 1 :(得分:1)

可以使用在CALayer上运行的CABasicAnimation,而无需使用CALayer本身;但要查询其 - (id)presentationModel。甚至可以将自己的密钥添加到CALayer,以此方式设置动画