播放png动画时延迟



我有一个使用相机的应用程序,上面覆盖了一个枪的图像,还有一个开火和重新装弹按钮。在retina iPad和iPhone上,它在大约一秒钟内循环播放30个图像(发射动画),在2秒内循环播放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];
}

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

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

阅读此以了解更多信息:CGImage/UIImage在UI线程上延迟加载导致断断续续

iOS 中的非延迟图像加载

最新更新