2009-11-04 3 views
15

Je n'ai pas encore fait d'animation avec le développement de l'iphone.Animation: Comment faire pour que le bouton UI se déplace de droite à gauche lorsque la vue est chargée?

Quelqu'un peut-il m'aider à faire bouger le bouton UI de droite à gauche lorsque la vue est chargée?

Je veux générer un effet comme ça: quand la vue est chargée, le bouton apparaît bougeant de la droite vers la gauche & s'arrête à sa place. C'est possible?

Toute aide concernant ce matériel d'animation est appréciée. S'il vous plaît aider avec un échantillon si disponible.

Merci d'avance.

Répondre

32

Juste pour le rendre encore plus lisse, je suggérerait de ne pas changer le cadre de l'UIView mais son centre;

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

Merci jusqu'à votre réponse. – Rambo

+1

+1 Nice .. c'est exactement ce que je cherchais. –

+0

Jusqu'à ce que vous soyez génial !!! –

2

dans votre viewDidAppear: (BOOL) méthode animée, vous pouvez changer l'image de votre bouton dans le bloc d'animation. donc tu verras ce que tu veux. Consultez la documentation sur les animations dans la référence de classe UIView. Le bloc d'animation plus simple sera comme ça (désolé, je n'ai pas mac proximité en ce moment, si le code ne peut pas être travailler juste après copier et coller)

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

Merci Morion J'ai les ans. – Rambo

1

De haut en bas animation

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

/* sous-types de transition communs. */

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"]; 
Questions connexes