0

我有一个使用相机的应用程序,上面覆盖了枪支图像以及开火和重新加载按钮。在 Retina iPad 和 iPhone 上,它在大约 1 秒内循环播放 30 张图像用于触发动画,在 2 秒内循环播放 41 张图像用于重新加载动画。所有图像都是 1920 x 1080,在 iPhone 上它们是 1000 x 533。例如,要在点击开火按钮时循环浏览 .png,我在 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 按钮时它似乎仍然在加载。我将如何消除这种延迟?还是有一个(相对简单的)替代播放开火和重新加载动画的方法?

4

1 回答 1

1

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

阅读此内容以获取更多信息: CGImage/UIImage 在 UI 线程上延迟加载导致口吃

iOS中的非延迟图像加载

于 2012-09-04T11:42:04.970 回答