动画imageview第一次需要时间

时间:2013-04-04 11:33:23

标签: iphone ios objective-c xcode

我正在为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];
}

但是当用户第一次按下按钮需要花费很多时间。有什么可以解决这个问题?

2 个答案:

答案 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,并在想要停止时隐藏。

我建议至少尝试一下。