1

アニメーションについて少し助けが必要です。最初のボタンはアニメーションを呼び出し、2 つ目のボタンは別のアニメーションを呼び出します。

最初のボタンを押すと、下のようなコードが呼び出されます。問題は、2 番目のボタンを押すと、アニメーションが開始位置 (2 番目のアニメーションの位置) にちょっとテレポートすることです。中断された場所からアニメーションを一緒に流す方法はありますか?

CABasicAnimation *anim1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
anim1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
anim1.fromValue = [NSNumber numberWithFloat:((-10*M_PI)/180)];
anim1.toValue = [NSNumber numberWithFloat:((10*M_PI)/180)];
anim1.repeatCount = HUGE_VALF;
anim1.autoreverses = YES;
anim1.duration = .5;
[head addAnimation:anim1 forKey:@"transform"];  

仮想画像:

http://i47.tinypic.com/2yopif6.jpg

黒い線は最初のアニメーション、赤い線は 2 番目のアニメーション、緑は私が理解しようとしているものです。写真によると、黒の真ん中で中断されていました。

4

1 に答える 1

2

UIView クラスの代わりにアニメーション メソッドを使用しないのはなぜですか? UIViewAnimationOptionBeginFromCurrentStateオプションを必ず使用してください。

ここで参照ドキュメントを確認してください: http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

編集

http://wangling.me/2011/06/core-animation-101-from-and-to/のチュートリアルが役立つと思います。彼らが達成しようとしているのは、ボタンでアニメーションをトリガーした後にボールをバウンドさせることです。ボタンをもう一度押すと、ボールは現在の位置から跳ね返ります。この目的の効果を実装するために、animationDidStart と animationDidStop の 2 つのデリゲート メソッドに依存していると述べているセクションがあります。

于 2012-07-26T15:19:26.113 に答える