2012-11-25 83 views
0

我有一個按鈕,我想給它一些動畫。一切工作正常,但我想找出一種方法來扭轉動畫的圖像序列順序,使按鈕似乎恢復其以前的狀態。我在文檔中找不到任何內容,似乎可能無法翻轉圖像序列? 如果無法扭轉順序,我該如何給按鈕設置不同的圖像序列?我應該用一個新的陣列來堆放它嗎?圖像序列的逆向動畫?

DA代碼:

animatedButton = [[UIImageView alloc] initWithFrame:animButtonRect]; 
[animatedButton setImage:[UIImage imageNamed:@"messaging_00014.png"]]; 
[animatedButton setUserInteractionEnabled:YES]; 

animatedButton.animationImages = [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"mov_00000.png"], 
          [UIImage imageNamed:@"mov_00001.png"], 
          [UIImage imageNamed:@"mov_00002.png"], 
          [UIImage imageNamed:@"mov_00003.png"], 
          [UIImage imageNamed:@"mov_00004.png"], 
          [UIImage imageNamed:@"mov_00005.png"], 
          [UIImage imageNamed:@"mov_00006.png"], 
          [UIImage imageNamed:@"mov_00007.png"], 
          [UIImage imageNamed:@"mov_00008.png"], 
          [UIImage imageNamed:@"mov_00009.png"], 
          [UIImage imageNamed:@"mov_00010.png"], 
          [UIImage imageNamed:@"mov_00011.png"], 
          [UIImage imageNamed:@"mov_00012.png"], 
          [UIImage imageNamed:@"mov_00013.png"], 
          [UIImage imageNamed:@"mov_00014.png"], 
nil]; 

animatedButton.animationDuration = 1.0; 
animatedButton.animationRepeatCount = 1; 
[self.view addSubview:animatedButton]; 
+0

你就不能使用具有這些圖像的陣列供給它以相反的順序? – rdelmar

+0

是的,我就是這麼做的。 – Ted

回答

0

我知道這個答覆有點晚了,但我一直在努力的反向動畫,認爲Id分享一個不錯的一段代碼。

注意:此代碼適用於30張圖像的動畫序列,圖像名稱爲4位數字。例如。 image_0001.jpg

-(void)animation 
{ 
NSMutableArray *animationArray = [[NSMutableArray alloc] init]; 

    int animationSizeTwo = 30; 

    for (int i=0; i< animationSizeTwo; i++) { 

     NSString *zeros = @"000"; 

     if (i >= 1000) { 

      zeros = @""; 

     } 
     else if (i >= 100) { 

      zeros = @"0"; 

     } 
     else if (i >= 10) { 

      zeros = @"00"; 
     } 
     NSString *animationNameTwo = [NSString stringWithFormat:@"(name)"]; 

     NSString *imageName = [NSString stringWithFormat:@"%@%@%d.jpg", animationNameTwo, zeros, i]; 

     [animationArrayTwo addObject:[UIImage imageNamed:imageName]]; 


    } 


    _imageView.animationImages = animationArrayTwo; 
    _imageView.animationDuration = 1; 
    _imageView.animationRepeatCount = 1; 
    _imageView.image = [_imageView.animationImages lastObject]; 
    [_imageView startAnimating]; 
} 

然後扭轉動畫你只需使用圖像數的代碼就地的該位:

INT animationSizeTwo = 0;

for (int i=30; i> animationSizeTwo; i--) { 

正如我說可能是來不及回答你的問題,但總能派上用場的未來, 最好的運氣