我正在尝试使用动画代理执行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,因为苹果公司在这里有关于动画框架属性的说法:
他们说框架不是CALayer的可动画属性。现在,我实际上并没有直接操作图层,但我认为CABasicAnimation对象可以。所以...我在这里玩火还是我做得对吗?
如果我做错了,我会非常欣赏指向正确方法的指针......请记住,我只能使用10.6 API。非常感谢!