我已经在这方面发表了好几篇文章,但到目前为止我还没有看到任何令人信服的东西。假设我只想要3个有透明度的小动画,其中有以下图片,
动画1- 15 png图像,维数为322*366.
动画2-3 png图像,维数为930*480.
动画3-2 png图像,维数83*364.
我使用UIImageviews animationImages制作了这3幅动画,但它有点延迟。我只想做几秒钟的动画。
谢谢。
发布于 2011-07-26 12:18:22
使用animationImages属性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];发布于 2011-08-22 18:05:33
您可以使用-initWithContentOfFile: function而不是-imageNamed:如果您不想缓存映像并且无法检索该内存的话。
问题是,当您启动动画([campFireView startAnimating])时,系统将解压缩并将campFireView的所有图像保存在内存中。肯定会占用很多记忆空间..。
请注意,调用[campFireView release]时将正确释放此内存空间。
https://stackoverflow.com/questions/6829847
复制相似问题