2011-01-30 16 views

答えて

24

CAAnimation(CATransitionはサブクラス)は、使用できるデリゲートメソッドanimationDidStop:finished:を持っています。デリゲートのプロパティを設定し、メソッドを実装

:少し古い質問が、Appleのドキュメントを

CATransition *transition = [CATransition animation]; 
transition.duration = duration; 
transition.delegate = self; 
//other settings... 
//call addAnimation... 

... 

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag 
{ 
    //do what you need to do when animation ends... 
} 
+0

@AnnaはCAAnimationのインスタンスは自身のデリゲートとして設定すべきではない 'と述べました。これを行うと(ガーベジコレクションされた環境の外で)、保持サイクルが発生します。これはあなたの答えではありませんか?または私は間違っている、説明してください。 –

+0

@flinth:いいえ、 'self'は' transition'を作成しているオブジェクトを指し、 'transition'自体はそうではありません。私はドキュメントが意味することは 'transition.delegate = transition;'のようなことをしないと信じています。 – Anna

+0

@Annaああ、あなたが正しいかもしれないとにかく、私はこれを実装する別の方法を見ていないよ:)説明してくれてありがとう –

関連する問題