7
私のコードは以下を示しています。CATransition/Animationの終了イベントを取得する方法は?
CATransition *transition = [CATransition animation];
transition.duration = duration
私はCATransition /アニメーションの終了イベントを取得したいと考えています。出来ますか?
私のコードは以下を示しています。CATransition/Animationの終了イベントを取得する方法は?
CATransition *transition = [CATransition animation];
transition.duration = duration
私はCATransition /アニメーションの終了イベントを取得したいと考えています。出来ますか?
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...
}
@AnnaはCAAnimationのインスタンスは自身のデリゲートとして設定すべきではない 'と述べました。これを行うと(ガーベジコレクションされた環境の外で)、保持サイクルが発生します。これはあなたの答えではありませんか?または私は間違っている、説明してください。 –
@flinth:いいえ、 'self'は' transition'を作成しているオブジェクトを指し、 'transition'自体はそうではありません。私はドキュメントが意味することは 'transition.delegate = transition;'のようなことをしないと信じています。 – Anna
@Annaああ、あなたが正しいかもしれないとにかく、私はこれを実装する別の方法を見ていないよ:)説明してくれてありがとう –