2009-10-14 9 views
8

Estoy animando un botón usando la animación central ahora en una condición determinada. Quiero detener esa animación. ¿Cómo detengo la animación?cómo detener la animación central?

aquí es el método para animar el botón

-(void)animateButton:(UIButton *)btnName 
{ 
    CABasicAnimation *pulseAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
    pulseAnimation.duration = .5; 
    pulseAnimation.toValue = [NSNumber numberWithFloat:1.1]; 
    pulseAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    pulseAnimation.autoreverses = YES; 
    pulseAnimation.repeatCount = FLT_MAX; 

    [btnName.layer addAnimation:pulseAnimation forKey:nil]; 
} 
+1

en un primer escaneo, pensé que esta pregunta era "cómo detener la cremación" :-) –

+0

lo siento! olvida el espacio –

Respuesta

22

De Core Animation Programming Guide

Cómo iniciar y detener animaciones explícitos

Se comienza una animación explícita mediante el envío de un addAnimation: forKey: mensaje al destino capa, pasando la animación y un identificador como parámetros. Una vez agregado a la capa objetivo, la animación explícita se ejecutará hasta que la animación se complete o se elimine de la capa. El identificador utilizado para agregar una animación a una capa también se usa para detenerlo al invocar removeAnimationForKey :. Puede detener todas las animaciones de una capa enviando a la capa un mensaje removeAllAnimations.

7

Como todo indica, solo tiene que asignar una clave a su animación (cadena, etc.), luego use -removeAnimationForKey: en su capa para eliminar esa animación en particular.

Sin embargo, si hace esto, la capa debe volver a su estado previo a la animación. Para que la capa se detenga con la propiedad animada conservando su valor actual, querrá hacer lo que describo en this answer: obtener la presentationLayer para la capa de animación, leer el valor actual de la propiedad animada, establecer ese valor en la capa de animación , y solo luego elimina la animación.

Cuestiones relacionadas