使用带有“frameOrigin”的keyPath的CABasicAnimation是否安全?

时间:2013-02-20 22:01:29

标签: objective-c macos animation core-animation cabasicanimation

我正在尝试使用动画代理执行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。非常感谢!

0 个答案:

没有答案