我正在为ImageViews设置动画,然后用户点按一个按钮。我有40多个 图片。我使用的代码是
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 :(得分: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 :(得分:1)
我建议你以编程方式进行,你应该从图像中创建动画gif图像。这是在线工具,您可以设置速度和其他参数 http://picasion.com/
并使用 https://github.com/arturogutierrez/Animated-GIF-iPhone UIImageView类别显示那个gif图像,在这种情况下你可以节省你的CPU时间。
当您想要播放动画时取消隐藏imageView,并在想要停止时隐藏。
我建议至少尝试一下。