2012-05-03 16 views
2

私は単純なUIImageViewアニメーションを作成しています。基本的には0から9までの画像番号があり、このコードを使ってアニメーション化しています。チェックアニメーションが停止したとき

myAnimation.animationImages = myArray; 
myAnimation.animationDuration = 0.7; 
myAnimation.animationRepeatCount = 12; 
[myAnimation startAnimating]; 

ここmyarrayのuiimagesすなわち0.png、1.pngなどの配列

すべてがうまく、そのアニメーションだけで結構です。私が知る必要があることは、いつアニメーションが停止したかを知ることですか?私はNSTimerを使うことができますが、アニメーションの開始と停止を確認するためにはストップウォッチが必要です。 UIImageViewがアニメーションを停止したときに私が見つけ出す方法があるという意味で、より良いアプローチがありますか?

このスレッドを参考にしました。

UIImageView startAnimating: How do you get it to stop on the last image in the series?

+0

をあなたがUIImageViewのアニメーションではないのUIViewをやっているように見えますあなたが言ったようにアニメーション。だからあなたはあなたが望むものに対して間違った答えを得ています。質問を修正する必要があります。 – Joel

+0

正解私の質問の誤字は残念です。はい、UIViewではなくUIImageViewをアニメーション化しています。誰でも私の投稿の編集を修正することができますか?UIViewをUIImageViewに変更してください。もう質問を編集できません。ありがとう –

答えて

4

animationDidStopSelectorを使用してください。アニメーションが実行されたときにこれが発生します:

[UIView setAnimationDidStopSelector:@selector(someMethod:finished:context:)]; 

をセレクタを実装:

- (void)someMethod:(NSString*)animationID finished:(NSNumber*)finished context:(void*)context { 

} 
+0

エン....また、私は頻繁に忘れて、[〜UIView setAnimationDelegate:self]を追加する必要があります〜 – Tranz

+0

こんにちはジョエル、答えがありますが、どのアニメーションを停止するかどうかを確認する必要がどのUIImageviewを教えてください?上記の質問を修正し、UIViewをUIImageViewに変更することができたらと思います。 –

1

はい、NSTimersを使用するよりもはるかに優れたアプローチがあります。 iOS 4以降を使用している場合は、ブロックアニメーションの使用を開始することをおすすめします。私はあなたの質問が間違って読んだと思うおっと:この

[UIView animateWithDuration:(your duration) delay:(your delay) options:UIViewAnimationCurveEaseInOut animations:^{ 

     // here you write the animations you want 


    } completion:^(BOOL finished) { 
     //anything that should happen after the animations are over 


    }]; 

編集をしてみてください。 UIImageViewのアニメーションの場合、私はNSTimersまたはスケジュールされたイベント

+0

申し訳ありませんが、私は私の質問に誤字がありました。私はUIImageViewがアニメーションを止めるときをチェックする方法を尋ねたかった。 –

0

を使用するより良い方法を考えることができないあなたも、この試すことができます。

[self performSelector:@selector(animationDone) withObject:nil afterDelay:2.0]; 
関連する問題