iOS中的动画,有很多高分辨率图像

时间:2012-09-06 14:30:45

标签: ios5 animation uiimageview

我对iOS编程很新,我遇到了这个问题。

我有一个视图,动画是火车冲过来的。动画的帧是60个(1024x768)png,我放入一个数组,然后使用[myUIImageView startAntimating]

这很漂亮,但是我想要在同一个视图中运行另一个动画,这个动画大约是270 png的相同分辨率,火车停在那里并打开门。以相同的方式将这些图像添加到UIImageView并不足为奇地使应用程序崩溃。事实上,不添加第一组图像只添加这些图像会导致应用程序崩溃。

解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

持有270个这样的PNG应该需要大约850 MB的内存,所以你不能一次把它们全部拿走。我可以想出三种解决方法 -

  1. 不是一次性加载所有图像,而是仅在内存中保存(比方说)10张图像,丢弃已经显示的图像并从磁盘加载新图像。
  2. 使用专用电影格式;这些格式具有帧间压缩,其中新帧仅保持它与前一帧之间的差异。这显然减少了内存使用量。看一下libav's FAQ,了解如何将一系列图像转换为电影。
  3. 缩小图像的大小。如果您不在iPad上,或者不需要视网膜分辨率,减少像素数将大大降低内存需求。