CABasicAnimation与“frameOrigin”的keyPath一起使用是否安全?

我试图用动画代理来做一个NSView框架的动画。 我试图自定义持续时间和时间曲线,并且我需要以适用于Mac OSX 10.6的方式来完成此操作,因此我无法在NSAnimationContext中使用这些看起来非常多汁的方法。

根据我的研究,看起来我需要做的是创建自己的CAAnimation对象,并将其放入我想要动画的对象的动画字典中。 这段代码很好用:

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"frameOrigin"];
animation.duration = 1.0;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

[self.myView setAnimations:[NSDictionary dictionaryWithObject:animation forKey:animation.keyPath]];

然后,我可以继续移动视图,如下所示:

[[self.myView animator] setFrame:myNewFrame];

这段代码很好用。 不过,我有点担心,因为苹果公司在这里说动画框架属性时没有正确使用API​​:

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/AnimatableProperties/AnimatableProperties.html#//apple_ref/doc/uid/TP40004514-CH11-SW1

他们说这个框架不是CALayer的一个动画属性。 现在,我并不直接操作图层,但我认为CABasicAnimation对象可以。 所以......我在这里玩火吗,还是我在做对吧?

如果我做错了,我会非常欣赏一个指向正确的方法来做到这一点...请记住,我只能使用10.6的API。 非常感谢!

链接地址: http://www.djcxy.com/p/74183.html

上一篇: Is it safe to use CABasicAnimation with a keyPath of "frameOrigin"?

下一篇: Is there a way to detect a running animation in iOS?