在Cocoa应用程序OS X中动画对象

时间:2012-12-30 19:42:26

标签: cocoa animation core-animation osx-mountain-lion

我正在寻找在我为OS X编写的Cocoa应用程序中创建简单的动画(淡化,窗口滑动,图形移动或“填满”)。我已经尝试在Core Animation,Core Graphics上查找信息,NSViewAnimation和Quartz Composer以及如何在Cocoa应用程序中使用它们,但我很快失去方向。还有一位消息人士称,MountainLion不再支持Core Animation。什么应该用于基本动画?是否有适用的特定框架或第三方库,或者为生产力应用程序制作动画的最佳实践方法?

我为没有更具体的内容而道歉,但我对确切的查询方式感到有些困惑。

1 个答案:

答案 0 :(得分:3)

最简单的方法是修改视图图层的属性。要做到这一点,你需要为你的视图设置一个标记为“想要图层”的标记(这些日子我主要在iOS中工作,所以我完全忘记了它的名称。)当你为视图,视图和所有视图执行此操作时子视图由CALayer对象支持。

默认情况下,“隐式”动画更改图层的可动画属性。您还可以将更改包含在CATransaction开始/结束块内的图层属性中,以更改图层计时和动画曲线等内容。

复杂性的下一步是创建CAAnimation对象并将它们添加到您的图层。从CABasicAnimation开始。您应该能够在网上找到教程,向您展示如何使用CABasicAnimations为图层属性设置动画。

文档很薄,我很害怕。

iOS添加了一组视图动画方法,可以让动画视图变得非常简单。可悲的是,在Mac OS上没有相同的功能。你必须处理动画代理,这有点令人困惑。您可能会查看几本核心动画书籍。一个是Marcus Zarra,另一个是Bill Dudney

编辑:我在我的(相当旧的)帖子中没有提到的另一个选项:Mac OS视图对象有一个叫做动画代理的东西。您可以将属性更改发送到视图的动画代理,系统会创建一个动画来进行更改。

如果您正在使用自动布局,请注意更改视图的框架或边界不会按预期工作,因为自动布局会尝试接管视图对象的大小和位置。相反,您希望为约束添加出口,并对约束设置进行动画更改。