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:
이 있습니다.
위임 속성을 설정하고 방법을 구현 :
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.delegate = transition;'과 같은 것을하지 않는다고 믿는다. – Anna
@Anna 오, 당신 말이 맞아, 어쨌든 나는 이것을 구현하는 또 다른 방법을 보지 못했다. 설명 해주셔서 감사합니다. –