2011-01-30 9 views

Odpowiedz

24

CAAnimacja (której CATransition jest podklasą) ma metodę delegata animationDidStop:finished:, której można użyć.

Ustaw właściwość delegata i wdrożenie metody:

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 nieco stare pytanie, ale dokumentacja Apple powiedział 'Instancja CAAnimation nie powinien być ustawiony jako delegat sobie. Czynienie tego (poza środowiskiem zbierania śmieci) spowoduje zatrzymanie cykli. Czy to nie jest to, co robisz w swojej odpowiedzi? Albo się mylę, wyjaśnij proszę. –

+0

@flinth: Nie, 'self' odnosi się do obiektu, który tworzy' transition', a nie 'transition' sam. Wierzę, że doktorzy mają na myśli to, że nie robią czegoś takiego jak "transition.delegate = transition;". – Anna

+0

@Anna oh, może masz rację, tak czy inaczej nie widzę innego sposobu realizacji tego :) Dziękuję za wyjaśnienie –

Powiązane problemy