动画imageview第一次需要时间
问题描述:
我在动画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];
}
但它需要大量的时间,当用户按下首次按钮。有什么可以解决这个问题的?
答
原因是下面的代码:
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上加载图像并定期更改图像。它会给你动画效果。
答
我建议你宁愿以编程的方式来做,你应该从图像创建动画gif图像。这里是在线工具,你可以设置速度等参数 http://picasion.com/
,并使用 https://github.com/arturogutierrez/Animated-GIF-iPhone 类的UIImageView在这种情况下,以显示GIF图片您可以保存CPU时间。
当您想要播放动画时隐藏imageView并在想要停止时隐藏。
我建议至少试一试。
什么原因给一个[UIImage命名:]块1.png,2.png ..? – satheeshwaran 2013-04-04 11:38:54
加载所有图像需要很长时间,也需要大量内存来加载这些图像。当视图加载时,您可以将图像加载到数组中。这将加快加载时间。 – rckoenes 2013-04-04 11:38:57
我已经在viewdidload本身中使用了数组 – Purva 2013-04-04 11:45:07