2009-11-04 16 views
15

Non ho ancora realizzato materiale di animazione con lo sviluppo di iphone.Animazione: come far muovere UI da destra a sinistra quando viene caricata la vista?

Qualcuno può aiutarmi a far muovere UIbutton da destra a sinistra quando viene caricata la vista?

Voglio generare un effetto del genere: quando la vista è caricata, il pulsante appare spostandosi da destra a sinistra alle fermate & al suo posto. È possibile?

Qualsiasi aiuto riguardante questa animazione è apprezzato. Si prega di aiutare con qualche campione, se disponibile.

Grazie in anticipo.

risposta

32

Giusto per rendere ancora lisciante, io suggerirebbe di non modificare la cornice di UIView ma il suo 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

Grazie per la tua risposta. – Rambo

+1

+1 Bello .. questo è proprio quello che stavo cercando. –

+0

Finché sei fantastico !!! –

2

nel tuo viewDidAppear: (BOOL) metodo animato è possibile modificare il frame del pulsante all'interno del blocco di animazione. così vedrai quello che vuoi. Controlla la documentazione sulle animazioni nel riferimento alla classe UIView. Il blocco di animazione più semplice sarà così (mi dispiace, non ho mac vicina in questo momento, in modo da codice non può essere lavoro subito dopo copia e incolla)

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

Grazie a Morion, ho preso l'ans. – Rambo

1

Da cima a fondo l'animazione

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

/* sottotipi di transizione comuni. */

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"]; 
Problemi correlati