1

可能重复:
如何有效地显示许多图像?(iPhone编程)

我有数百张图像,它们是一个动画的帧图像(每秒 24 张图像)。每个图像尺寸为1024x690

我的问题是,我需要制作平滑的动画来迭代UIImageView中的每个图像帧。
我知道我可以使用UIImageView的 animationImages 。但是由于内存问题,它崩溃了。

另外,我可以使用imageView.image = [UIImage imageNamed:@""]它来缓存每个图像,以便下一个重复动画平滑。但是,缓存大量图像会使应用程序崩溃。

现在我使用imageView.image = [UIImage imageWithContentsOfFile:@""],它不会使应用程序崩溃,但不会使动画如此流畅。

也许有更好的方法来制作帧图像的良好动画?

也许我需要做一些准备,以某种方式取得更好的结果。我需要你的建议。谢谢!

4

3 回答 3

1

您可以在这里找到答案:如何有效地显示许多图像?(iPhone编程)

总结该链接中所说的内容,如果您使用与 UIKit 相反的 Core Animation 和 OpenGL 等低级 API,则在显示许多图像时会获得更好的性能。

于 2012-06-21T02:58:29.467 回答
1

您可以尝试在内存中一次缓存 10 个图像(您可能必须使用正确的限制——我怀疑它是 10 个)。每次更改 imageView 的图像时,您都可以执行以下操作:

// remove the image that is currently displayed from the cache
[images removeObjectAtIndex:0];
// set the image to the next image in the cache
imageView.image = [images objectAtIndex:0];
// add a new image to the end of the FIFO
[images addObject:[UIImage imageNamed:@"10thImage.png"]];
于 2012-06-21T03:07:23.440 回答
0

您可以使用数组创建多个图像的缓冲区。可以使用 imageWithContentsOfFile 从后台线程(例如,并发 GCD 异步)加载/填充此图像缓冲区数组。

于 2012-06-21T03:11:28.833 回答