ios - ¿Múltiples CAAnimations para animaciónDidStop método?
delegates core-animation (2)
Puede establecer objetos clave / valor para la instancia de CAAnimation de esta manera:
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;
Verifique cuál fue llamado en el método de delegado:
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
if([[anim valueForKey:@"id"] isEqual:@"animation1"]) {
NSLog(@"animation1");
}
if([[anim valueForKey:@"id"] isEqual:@"animation2"]) {
NSLog(@"animation2");
}
}
Sé que tienes que usar este método para obtener el método de delegado para cuando la animación haya terminado:
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag {
El problema es, ¿cómo distinguiría entre múltiples animaciones de CA como 2 o más?
Busqué en Google y no he encontrado nada útil.
¡Por favor, comparte conmigo sobre cómo lograste esto!
¡Gracias!
Se CAAnimation
objeto CAAnimation
se reutiliza de vez en cuando y es por eso que no me gusta darle una clave determinada (ya que no es único). 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
}