アニメーター プロキシを使用して 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];
このコードはうまく機能します。ただし、フレーム プロパティのアニメーション化について Apple が次のように述べているため、API を正しく使用していないのではないかと少し心配しています。
フレームは CALayer のアニメーション可能なプロパティではないと彼らは言います。ここで、実際にレイヤーを直接操作しているわけではありませんが、CABasicAnimation オブジェクトが操作していると思います。私はここで火遊びをしているのか、それとも正しいことをしているのだろうか?
もし私のやり方が間違っていたら、正しい方法を教えていただけるとありがたいです...私は 10.6 API しか使えないことを覚えておいてください。本当にありがとう!