2010-07-20 13 views
7

estoy animando una vista UIImage con este códigoCATransform3DRotate y UIImageView

CABasicAnimation *animation; 
animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
animation.duration = 1; 
animation.toValue = [NSNumber numberWithFloat:M_PI]; 
animation.fromValue = [NSNumber numberWithInt:0]; 
[square.layer addAnimation:animation forKey:@"rotation"]; 

Todo funciona bien, pero mi arsenal llevar a su posición original al final de la animación. Miré en las propiedades de capa y encontré:

[square.layer setTransform:CATransform3DRotate(HERE, -M_PI, 0, 0, 0)]; 

Y no sé qué escribir en lugar de "aquí". ¿Usted me podría ayudar por favor? ¡Muchas gracias!

Respuesta

3

CATransform3DRotate() toma como primer parámetro una transformación para aplicar una rotación a. Si estabas buscando para girar la transformación de la capa, se usaría

[square.layer setTransform:CATransform3DRotate(square.layer.transform, -M_PI, 0, 0, 0)]; 

Dicho esto, si el problema que está teniendo es que las sacudidas de la capa de nuevo a la posición inicial al final de la animación, todos lo que debe hacer es establecer la propiedad removedOnCompletion de la animación en NO y su propiedad fillMode en kCAFillModeForwards.

+0

Thnaks mucho Brad! – Pierre