2013-06-26 24 views
3

我用一個簡單的動畫,我有10個按鈕和「點擊」一鍵式的工作之後(例如5)所有按鈕應該開始通過動畫之一,但他們是動畫同時,請讓我知道什麼可以做或.....感謝按鈕圖像陣列動畫每個週期

NSMutableArray* imagesArray = [[NSMutableArray alloc] init]; 
for (int images = 0; images < 15; images++) { 

    UIImage* buttonImage = [UIImage imageNamed:[NSString stringWithFormat:@"aaqqq00%02d.png", images]]; 
    [imagesArray addObject:buttonImage]; 
} 

NSArray* reversedAnim = [[imagesArray reverseObjectEnumerator] allObjects]; 

int buttonTag = button.tag; 

for (int images = 1; images <= 10; images++) { 
    UIButton *animButton = (UIButton *)[self.view viewWithTag:images]; 
    if (images <= buttonTag) { 
     animButton.imageView.animationImages = imagesArray; 
     [animButton setImage: 
     [UIImage imageNamed:@"aaqqq0014.png"] forState:UIControlStateNormal]; 
     animButton.adjustsImageWhenHighlighted = NO; 
     animButton.imageView.animationDuration = 1; //whatever you want (in seconds) 
     animButton.imageView.animationRepeatCount = 1; 
     [animButton.imageView startAnimating]; 
    } else { 

     if (currentButtonTag_ >= images) { 
      animButton.imageView.animationImages = reversedAnim; 
      [animButton setImage: 
      [UIImage imageNamed:@"aaqqq0000.png"] forState:UIControlStateNormal]; 
      animButton.adjustsImageWhenHighlighted = NO; 
      animButton.imageView.animationDuration = 0.2; //whatever you want (in seconds) 
      animButton.imageView.animationRepeatCount = 1; 
      [animButton.imageView startAnimating]; 
     } 
    } 
} 

回答

0

當你通過你的循環迭代,有保存所需的延遲的變量,並在結尾處添加到它每個循環。我們將這個稱爲delay

現在,而不是調用:

[animButton.imageView startAnimating]; 

這樣做:

[animButton.imageView performSelector:@selector(startAnimating) withObject:nil afterDelay:delay]; 

而且每個按鈕將開始累積的延時,之後動畫。

+0

我已經做到了,但還是它們延遲:( – Retro

+0

後,在同一時間動畫而你改變在每次循環延遲? – Wain

+0

我把延遲常數,我應該增加呢? – Retro

0

你需要給予一定的延遲時間和持續時間。

[UIView animateWithDuration:0.6 
          delay:2.0 
         options: UIViewAnimationCurveEaseOut 
        animations:^{S1Button.frame = CGRectMake(20, 10, 50, 10);S1buttonA.alpha = 0;} 
        completion:nil]; 

Set this for every animation.