2013-03-08 60 views
0

以及如何使在Xcode的UIViews一個任何時候的動畫,或UIImageViews的,而是意味着當用戶在應用程序中,animatons節目的任何時候,我的動畫是這樣的:如何爲iOS 6 xcode 4.6製作任何時間動畫?

- (void)showAnimation 
{ 


    [UIImageView beginAnimations:@"EFFECT_SHOW" context:nil]; 
    [UIImageView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIImageView setAnimationDuration:5.0f]; 

    self.imageAnimation.frame = CGRectMake(400, imageAnimation.frame.origin.y, imageAnimation.frame.size.width, imageAnimation.frame.size.height); 
    self.imageAnimation2.frame = CGRectMake(-400, imageAnimation2.frame.origin.y, imageAnimation2.frame.size.width, imageAnimation2.frame.size.height); 

    [UIImageView commitAnimations]; 
} 

&當我打電話該metod,只是我[自我showAnimation];但在viewDidload中,只顯示動畫一次,如何隨時?,我會需要一個「while」quiestion?或者我可以在另一個空白?

感謝您的幫助&來自拉巴斯的問候&聖克魯斯德拉謝拉 - 玻利維亞!搖滾! n_n'

+0

不清楚後再次showAnimation方法,你是什麼意思「只顯示動畫的一個時間,如何讓隨時隨地?」 ?您有多個圖像瀏覽並想要向所有人添加動畫? – 2013-03-08 18:30:33

+0

o對不起,我有2張圖片,動畫顯示左移 - >右 - > - 左,但是如何顯示此動畫? – 2013-03-08 18:33:55

+0

任何時間?你想同時做兩個動畫?還是需要貫穿始終? – 2013-03-08 18:36:49

回答

0

只需調用動畫完成

- (void) showAnimation 
{ 
    //TODO: maybe reset you animation 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView animateWithDuration:5.0f animations:^(){ 
      // define animation 
      self.imageAnimation.frame = CGRectMake(400, imageAnimation.frame.origin.y, imageAnimation.frame.size.width, imageAnimation.frame.size.height); 
      self.imageAnimation2.frame = CGRectMake(-400, imageAnimation2.frame.origin.y, imageAnimation2.frame.size.width, imageAnimation2.frame.size.height); 
     } 
     completion:^(BOOL finished){ 
      // after the animation is completed call showAnimation again 
      [self showAnimation]; 
    }]; 
} 
+0

謝謝,但仍然沒有工作,仍然沒有表現出這樣的無限,我確實調用了viewdidload中的方法,在另一個IBAction中從按鈕show,但仍然不工作,或者我錯誤的O_o? – 2013-03-11 14:14:17

+0

在方法的開頭添加一個NSLog(@「showAnimation」)並告訴我該方法被調用的頻率如何?你是否將動畫重置爲開始狀態?你看到了什麼?動畫播放的頻率如何? – JeanLuc 2013-03-11 16:24:33

+0

是的,繼續打印「showAnimation」,但動畫沒有運行,只是一次,但後來沒有顯示任何東西:S – 2013-03-11 19:03:05

2

使用作爲UIView的一部分的塊動畫。 View Programming Guide for iOS有很大的動畫片段。

當調用方法

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion 

的 「選項」,你可能想要的是UIViewAnimationOptionAutoreverse

例如:

[UIView animateWithDuration:5.0f delay:0 options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat animations:^{ 
    self.imageAnimation.frame = CGRectMake(400, imageAnimation.frame.origin.y, imageAnimation.frame.size.width, imageAnimation.frame.size.height); 
    self.imageAnimation2.frame = CGRectMake(-400, imageAnimation2.frame.origin.y, imageAnimation2.frame.size.width, imageAnimation2.frame.size.height); 
} completion:nil]; 

編輯:是啊..這是我的錯,不重複。根據文檔....

UIViewAnimationOptionAutoreverse

運行動畫向後和向前。必須與UIViewAnimationOptionRepeat選項結合使用。

我更新了代碼以包含UIViewAnimationOptionRepeat,它現在應該可以工作。

+0

哇,這是可行的,但只有一次,我怎麼才能使這個過程不會結束,直到你退出應用程序,我的意思是,動畫持續進入和退出應用程序完全,動畫不應該停止,我需要創建一個新的空白?或在哪裏或如何做到這一點? – 2013-03-08 19:47:34

+0

它像一個無限的動畫,我想 – 2013-03-08 21:05:45

+0

是的,它的目的是成爲一個無限的動畫,我只是搞砸了一小會兒。我在相應的文檔中添加並修復。 – DBD 2013-03-09 13:30:30