2009-11-04 7 views
15

Nie zrobiłem do tej pory żadnych animacji z rozwojem iPhone'a.Animacja: Jak zmusić UIbutton do przejścia od prawej do lewej po załadowaniu widoku?

Czy ktoś może mi pomóc, jak sprawić, by UIbutton poruszał się od prawej do lewej po załadowaniu widoku?

Chcę wygenerować efekt w ten sposób: po załadowaniu widoku przycisk pojawia się przesuwając od prawej do lewej & zatrzymuje się na swoim miejscu. Czy to możliwe?

Każda pomoc dotycząca tej animacji jest doceniana. Proszę o pomoc w przypadku niektórych próbek, jeśli są dostępne.

Z góry dziękuję.

Odpowiedz

32

Wystarczy, aby uczynić go jeszcze płaszcz, ja sugerowałaby nie zmieniać ramy UIView, ale jego centrum;

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

Dzięki Till za odpowiedź. – Rambo

+1

+1 Przyjemnie .. tego właśnie szukałem. –

+0

Aż jesteś niesamowity !!! –

2

w twojej viewDidAppear: (BOOL) animowana metoda, możesz zmienić ramkę swojego przycisku wewnątrz bloku animacji. więc zobaczysz, czego chcesz. Sprawdź dokumentację dotyczącą animacji w odwołaniu do klasy UIView. Najprostszy blok animacja będzie tak (przepraszam, nie mam mac pobliżu teraz, więc kod nie może pracować tylko po kopiuj-wklej)

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

Dzięki Morion dostałem ans. – Rambo

1

od góry do dołu animacja

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

/* Wspólne podtypy przejściowego. */

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) 

Cel 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"]; 
Powiązane problemy