我在很短的时间(PNG序列)来显示所需要的图像的序列。总共有31个PNG图像在总,每个约45KB文件大小。我已经加载他们用以下代码:

imgArray = [[NSMutableArray alloc] init];
for(int i = 0; i <= 30; i++) {
    NSString * filename = [NSString stringWithFormat:@"img_000%.2d.png", i];
    UIImage *temp = [UIImage imageNamed:filename];
    [imgArray addObject:temp];
    [temp release];
    temp = nil;
} 

我使用以下代码,用于显示图像:

CGImageRef image = [(UIImage *)[imgArray objectAtIndex:imgFrame] CGImage];
imgLayer.contents = (id)image;
if(imgFrame < 29) {
    imgFrame++;
} else {
    imgFrame = 0;
    imgLayer.hidden = TRUE;
    [imgTimer invalidate];
}

其中imgLayer是CALayer。 (imgTimer是与间隔0.03S重复的计时器)

但是,我发现,当我调用图像出来,它是在第一时间非常laggy。除了第一外观,其他外观没有问题。

这是否与预加载图像?或者是我的图片文件大小太大?

有帮助吗?

解决方案

原因您的滞后都分不清没有分析数据。但这里有个窍门,可以帮助:所有图片加入到一个大的文件。尽量做到矩形(也许在你的情况下,6×6或4×8)。然后加载这个单一文件并裁剪各图像进行显示(即用于与瓦片的大小显示创建一个图像,而另一个后从大图像复制一个片到显示图像)。

其他提示

当它们被使用和显示的图像被加载。 如果您在使用仪器时间简档,你会滞后您遇到。如果再放大到滞后,看看是什么原因造成的,你通常会看到“copyImageBlockSetPNG”是花时间,该功能对“夸大”了。

你必须找到什么办法做的是建立您的图像,并迫使你需要它们之前加载它们。那是另一回事明显。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top