cocoa - 我可以在没有 CALayers 的情况下使用 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.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/

相关文章:

macos - 为什么我要使用 NSObjectController?

objective-c - NSTableView 不滚动,而是下推下面的内容

ios - 手动动画 UIScrollView.contentOffset 时背景图案跳跃

iphone - 如何使用 CAShapeLayer 绘制图表?

cocoa - 将 NSScrollView 与 CALayer 结合使用

cocoa - 鼠标事件通过 NSView 渗透

xcode - 无法使用可执行文件中的命令行工具归档 Cocoa 应用程序

Cocoa 不会捕获 Shift 修饰符吗?

ios - 同时分别为图层变换的旋转和缩放比例设置不同的持续时间

cocoa-touch - +animateWithDuration :animations:completion: crashes under simulator