可能重复:
How to efficiently show many Images? (iPhone programming)
我有数百张图像,这些图像是一个动画(每秒24幅图像)的帧图像。每张图片尺寸 1024x690 。
我的问题是,我需要在 UIImageView 中制作平滑动画迭代每个图像帧。
我知道我可以使用 UIImageView 的animationImages。但由于记忆问题,它崩溃了。
此外,我可以使用imageView.image = [UIImage imageNamed:@""]
缓存每个图像,以便下一个重复动画平滑。但是,缓存很多图像会破坏应用程序。
现在我使用imageView.image = [UIImage imageWithContentsOfFile:@""]
,它不会使应用程序崩溃,但不能使动画如此流畅。
也许有更好的方法可以制作出良好的帧图像动画?
也许我需要做一些准备,以某种方式取得更好的结果。我需要你的建议。谢谢!
答案 0 :(得分:1)
您可以在此处找到答案:How to efficiently show many Images? (iPhone programming)
总结一下这个链接的内容,如果使用像Core Animation和OpenGL这样的低级API,那么在显示许多图像时会获得更好的性能,与UIKit相反。
答案 1 :(得分: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"]];
答案 2 :(得分:0)
您可以使用数组创建多个图像的缓冲区。可以使用imageWithContentsOfFile从后台线程(例如,并发GCD异步)加载/填充此缓冲区图像数组。