2011-12-28 15 views
5

więcWykrycie zakończenia animacji

wykonuję prostą animację z CABasicAnimation (jak pokazano poniżej).

CAAnimationGroup *theGroup = [CAAnimationGroup animation]; 
theGroup.fillMode = kCAFillModeForwards; 
theGroup.removedOnCompletion = NO; 
theGroup.delegate = self; 
theGroup.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

theGroup.duration = inDuration; 
theGroup.repeatCount = 0; 
theGroup.animations = [NSArray arrayWithObjects:rotationZ, theAnimationX, theAnimationY, nil]; // you can add more 

[inLayer addAnimation:theGroup forKey:@"animateLayer"]; 

NSLog (@"ABCD"); 
// This gets called before end of animation 

Czy istnieje metoda jak -(BOOL) isAnimationCompleted; abym mógł wiedzieć, kiedy animacja jest zakończona?

Chcę uruchomić metodę zaraz po zakończeniu animacji. Jakieś pomysły ?

Odpowiedz

9

Wdrożenie metody

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag 

które można zobaczyć dokument z here.

+0

Ta metoda nie zwraca niczego. – Legolas

+1

Tak, jego typem powrotu jest 'void'. Ale zostaniesz poinformowany, że animacja została zakończona za pomocą tej metody delegatów. Następnie możesz wywołać wymaganą metodę wewnątrz tego. – Ilanchezhian

+0

Piękny. Dzięki ! – Legolas

Powiązane problemy