2011-01-30 2 views

답변

24

CAAnimation (CATransition은 하위 클래스 임)에는 사용할 수있는 대리자 메서드 animationDidStop:finished:이 있습니다.

위임 속성을 설정하고 방법을 구현 :

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.delegate = transition;'과 같은 것을하지 않는다고 믿는다. – Anna

+0

@Anna 오, 당신 말이 맞아, 어쨌든 나는 이것을 구현하는 또 다른 방법을 보지 못했다. 설명 해주셔서 감사합니다. –

관련 문제