第一次动画imageview需要时间



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

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

原因如下:

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-iPhoneUIImageView类别来显示gif图像在这种情况下你可以节省CPU时间

当你想播放动画时取消隐藏,当你想停止时隐藏。

我建议至少试一试。

最新更新