2011-10-10 76 views
4

我想要动画不同版本的PNG;那么我有三个版本的这个PNG ......一个较暗的版本,一个中等较暗的版本和一个克莱尔版本。在我的动画我想做这个类型的动画IOS:动画为.png

黑暗 - >中黑暗 - >克莱尔 - >中黑暗 - >暗 - >中黑暗 - > .....

这可能吗?

+0

肯定。这是可能的。首先,您可以编写复杂的算法并根据需要更改图像亮度。但最简单的方法是在重复模式下动画3个图像:) – beryllium

回答

17

听起来像是要动画的UIImageView

// create the view that will execute our animation 
UIImageView* campFireView = [[UIImageView alloc] initWithFrame:self.view.frame]; 

// load all the frames of our animation 
campFireView.animationImages = [NSArray arrayWithObjects:  
          [UIImage imageNamed:@"campFire01.gif"], 
          [UIImage imageNamed:@"campFire02.gif"], 
          [UIImage imageNamed:@"campFire03.gif"], 
          [UIImage imageNamed:@"campFire04.gif"], 
          [UIImage imageNamed:@"campFire05.gif"], 
          [UIImage imageNamed:@"campFire06.gif"], 
          [UIImage imageNamed:@"campFire07.gif"], 
          [UIImage imageNamed:@"campFire08.gif"], 
          [UIImage imageNamed:@"campFire09.gif"], 
          [UIImage imageNamed:@"campFire10.gif"], 
          [UIImage imageNamed:@"campFire11.gif"], 
          [UIImage imageNamed:@"campFire12.gif"], 
          [UIImage imageNamed:@"campFire13.gif"], 
          [UIImage imageNamed:@"campFire14.gif"], 
          [UIImage imageNamed:@"campFire15.gif"], 
          [UIImage imageNamed:@"campFire16.gif"], 
          [UIImage imageNamed:@"campFire17.gif"], nil]; 

// all frames will execute in 1.75 seconds 
campFireView.animationDuration = 1.75; 
// repeat the annimation forever 
campFireView.animationRepeatCount = 0; 
// start animating 
[campFireView startAnimating]; 
// add the animation view to the main window 
[self.view addSubview:campFireView]; 

http://appsamuck.com/day2.html

+0

以上是不好的建议,你不应该使用UIImageView.animationImages API。请参阅http://stackoverflow.com/questions/8112698/how-to-do-animations-using-images-efficiently-in-ios/8113027#8113027,了解在设备上运行时不会崩溃的方法。 – MoDJ