Múltiples CAAnimations para el método animationDidStop?

Sé que debes utilizar este método para get el método de delegado para cuando la animation haya finalizado:

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

El problema es, ¿cómo puedo distinguir entre múltiples CAAnimations como 2 o más?

Busqué en Google y no he encontrado nada útil.

¡Comparta conmigo cómo logró esto!

¡Gracias!

Puede establecer objects de key / valor para la instancia de CAAnimation como esta:

 CABasicAnimation *theAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; [theAnimation setValue:@"animation1" forKey:@"id"]; theAnimation.delegate = self; CABasicAnimation *theAnimation2 = [CABasicAnimation animationWithKeyPath:@"opacity"]; [theAnimation2 setValue:@"animation2" forKey:@"id"]; theAnimation2.delegate = self; 

Compruebe a cuál se llamó en el método delegado:

 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{ if([[anim valueForKey:@"id"] isEqual:@"animation1"]) { NSLog(@"animation1"); } if([[anim valueForKey:@"id"] isEqual:@"animation2"]) { NSLog(@"animation2"); } } 

Se CAAnimation object CAAnimation se reutiliza de vez en cuando y por eso no me gusta darle una key determinada (ya que no es única). Lo que lo hace único es la asociación con un CALayer con addAnimation:forKey: Por esta razón, utilizo el siguiente código en animationDidStop :

 if animation == layer.animationForKey(AnimationKeys.scaleUp) { // scaleUp animation has completed }