播放png动画时出现延迟

时间:2012-09-04 11:34:36

标签: iphone objective-c ios xcode ipad

我有一个使用相机的应用程序,覆盖了枪形图像以及火灾和重新加载按钮。在视网膜iPad和iPhone上,它可以在大约一秒内循环拍摄30张图像用于发射动画,在2秒内循环播放41张图像用于重新加载动画。所有图像都是1920 x 1080,在iPhone上它们是1000 x 533.例如,当点击开火按钮时循环显示.pngs,我在PlayViewController.m文件中使用它:

- (IBAction)fire:(id)sender {

// Play the firing animation for the rifle, enable reload button

fireButton.enabled = NO;
type.animationImages  = gunanimload;
type.animationDuration = 1.0;
type.animationRepeatCount = 1;
reloadButton.enabled = YES;
[type startAnimating];

在viewDidLoad方法中,我创建数组并使用images加载它:

- (void)viewDidLoad
{
[super viewDidLoad];

UIImage* img1 = [UIImage imageNamed:@"rev0001.png"];

... x30

gunanimload = [NSArray arrayWithObjects:img1, ... x30, nil];

}

即使它应该在视图加载时加载数组,它仍然可以在点击Fire按钮时执行此操作。我该如何消除这种延迟?或者是否有(相对简单的)替代方法来玩火并重新加载动画?

1 个答案:

答案 0 :(得分:1)

UIImage imageNamed方法在显示需要之前不会加载图像。有一些方法可以预先加载图像。

阅读本文以获取更多信息: CGImage/UIImage lazily loading on UI thread causes stutter

Non-lazy image loading in iOS