2009-11-04 27 views
15

No he hecho ningún material de animación con el desarrollo de iphone hasta ahora.Animación: ¿Cómo hacer que el botón UI se mueva de derecha a izquierda cuando se carga la vista?

¿Alguien me puede ayudar a hacer que el botón UI se mueva de derecha a izquierda cuando se carga la vista?

Quiero generar un efecto como ese: cuando se carga la vista, el botón aparece moviéndose desde el extremo derecho al izquierdo & se detiene en su lugar. ¿Es posible?

Se agradece cualquier ayuda relacionada con este material de animación. Por favor ayuda con alguna muestra si está disponible.

Gracias de antemano.

Respuesta

32

Sólo para que sea aún más pulido, me sugeriría no cambiar el marco de UIView sino su centro;

CGPoint newLeftCenter = CGPointMake(20.0f + myButton.frame.size.width/2.0f, myButton.center.y); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0f]; 
myButton.center = newLeftCenter; 
[UIView commitAnimations]; 
+0

Gracias hasta su respuesta. – Rambo

+1

+1 Bonito ... esto es justo lo que estaba buscando. –

+0

¡Hasta que seas increíble! –

2

en su viewDidAppear: (BOOL) método animado puede cambiar el marco de su botón dentro del bloque de animación. entonces verás lo que quieres Consulte la documentación sobre animaciones en la referencia de clase UIView. El bloque de animación más simple será así (lo siento, no tengo mac cercana en este momento, por lo que el código no se puede trabajar justo después de copiar y pegar)

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0f]; 
[myButton setFrame:newFrame]; 
[UIView commitAnimations]; 
+0

Gracias Morion Tengo la ans. – Rambo

1

De arriba a abajo animación

CATransition *animation = [CATransition animation]; 
[animation setDuration:0.4]; 
[animation setType:kCATransitionPush]; 
[animation setSubtype:kCATransitionFromBottom]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
[[TopButton layer] addAnimation:animation forKey:@"SwitchToDown"]; 
0

/* subtipos de transición comunes. */

kCATransitionFromRight

kCATransitionFromLeft

kCATransitionFromTop

kCATransitionFromBottom

Swift:

let transition1: CATransition = CATransition() 
    let timeFunc1 : CAMediaTimingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
    transition1.duration = 1.0 
    transition1.timingFunction = timeFunc1 
    transition1.type = kCATransitionPush 
    transition1.subtype = kCATransitionFromRight 
    self.yourBtnORViewRef.layer.addAnimation(transition1, forKey: kCATransition) 

Objective-C

CATransition *animation = [CATransition animation]; 
[animation setDuration:1.0]; 
[animation setType:kCATransitionPush]; 
[animation setSubtype:kCATransitionFromRight]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
[[self.yourBtnORViewRef layer] addAnimation:animation forKey:@"SwitchToRight"]; 
Cuestiones relacionadas