Iphone 播放png动画时延迟

Iphone 播放png动画时延迟,iphone,objective-c,ios,xcode,ipad,Iphone,Objective C,Ios,Xcode,Ipad,我有一个使用相机的应用程序,上面有一个枪图像,还有一个开火和重新装弹按钮。在retina iPad和iPhone上,它在大约1秒的时间内循环播放30幅图像,在重新加载动画中循环播放41幅图像。所有图像都是1920 x 1080,在iPhone上是1000 x 533。例如,要在点击fire按钮时循环使用.pngs,我在PlayViewController.m文件中使用了以下命令: - (IBAction)fire:(id)sender { // Play the firing animatio

我有一个使用相机的应用程序,上面有一个枪图像,还有一个开火和重新装弹按钮。在retina iPad和iPhone上,它在大约1秒的时间内循环播放30幅图像,在重新加载动画中循环播放41幅图像。所有图像都是1920 x 1080,在iPhone上是1000 x 533。例如,要在点击fire按钮时循环使用.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方法中,我创建了数组并用图像加载它:

- (void)viewDidLoad
{
[super viewDidLoad];

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

... x30

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

}

即使它应该在视图加载时加载数组,但它似乎仍然在点击Fire按钮时加载数组。我如何消除这种延迟?或者有没有(相对简单的)替代方法来播放开火和重新加载动画?

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

有关更多信息,请阅读以下内容:


不能理解你的问题,也可以考虑使用精灵代替这个图像数组。它将提高性能并减少内存需求。请阅读下面的sprites示例:您对imageNamed方法的看法不正确,它会立即加载并将图像数据缓存在内存中。正确的方法是在帧发生变化时,在计时器中一次解码一帧,或者将所有帧解码为原始数据,然后从映射内存加载。在我的回答中可以看到更多关于这个问题的信息: