2013-04-04 82 views
0

我在动画ImageViews,然后用户点击一个按钮。我有超过40个 图像。我用的代码是动画imageview第一次需要时间

arr3 = [[NSArray alloc]initWithObjects:[UIImage imageNamed:@"Aperture_00000.png"], 
[UIImage imageNamed:@"Aperture_00001.png"], 
[UIImage imageNamed:@"Aperture_00002.png"], 
... 
[UIImage imageNamed:@"Aperture_00023.png"], nil]; 

imgv.animationImages = arr3; 
imgv.animationDuration=2.0f; 
imgv.animationRepeatCount =1; 

启动动画的方法是:

-(void)animate { 
    [imgv startAnimating]; 
} 

但它需要大量的时间,当用户按下首次按钮。有什么可以解决这个问题的?

+0

什么原因给一个[UIImage命名:]块1.png,2.png ..? – satheeshwaran 2013-04-04 11:38:54

+0

加载所有图像需要很长时间,也需要大量内存来加载这些图像。当视图加载时,您可以将图像加载到数组中。这将加快加载时间。 – rckoenes 2013-04-04 11:38:57

+0

我已经在viewdidload本身中使用了数组 – Purva 2013-04-04 11:45:07

回答

1

原因是下面的代码:

arr3 = [[NSArray alloc]initWithObjects:[UIImage imageNamed:@"Aperture_00000"],[UIImage imageNamed:@"Aperture_00001"],[UIImage imageNamed:@"1.png",@"2.png",@"3png",@"4.png",@"5.png",@"6.png",@"7.png",@"8.png",@"9.png",@"10.png",@"11.png",@"12.png",@"13.png",@"14.png",@"15.png",]; 

你可以做的是别的地方加载该阵列。

注意:这是一种非常消耗内存的加载图像的方式。您访问此课程2-3次后,您的应用肯定会崩溃。而不是这个使用一些替代品。我可以建议的最简单的选择是在UIImageView上加载图像并定期更改图像。它会给你动画效果。

1

我建议你宁愿以编程的方式来做,你应该从图像创建动画gif图像。这里是在线工具,你可以设置速度等参数 http://picasion.com/

,并使用 https://github.com/arturogutierrez/Animated-GIF-iPhone 类的UIImageView在这种情况下,以显示GIF图片您可以保存CPU时间。

当您想要播放动画时隐藏imageView并在想要停止时隐藏。

我建议至少试一试。

+0

感谢您的回复,但是如何保存图像并从主包 – Purva 2013-04-04 12:53:50

+0

中显示出来,然后将其添加到您的项目并打开项目设置(目标)> BuildPhases>复制Bundle资源,在那里你可以添加.gif文件到你的主包和代码中,你应该使用 .gif来访问它 – 2013-04-04 13:00:21

+0

我创建了一个动画PNG,但是当我尝试保存图像时,它不是动画图像?完全卡在这里 – Purva 2013-04-04 13:48:32

相关问题