预紧在iPhone应用程序的图片?
-
18-09-2019 - |
题
我在很短的时间(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”是花时间,该功能对“夸大”了。
你必须找到什么办法做的是建立您的图像,并迫使你需要它们之前加载它们。那是另一回事明显。
不隶属于 StackOverflow