-1

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

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

这效果很好,但我有另一个动画,我想稍后在同一个视图中运行,它是相同分辨率的大约 270 pngs,其中火车停下来并且门打开。UIImageView以同样的方式将这些图像添加到 a中会导致应用程序崩溃。事实上,不添加第一组图像而仅添加这些图像会使应用程序崩溃。

克服这个问题的最佳方法是什么?

4

1 回答 1

1

保存 270 个这样的 PNG 应该占用大约 850 mb 的内存,所以你不能一次保存它们。我可以想到三种方法来解决这个问题 -

  1. 不是一次加载所有图像,而是仅在内存中保存(例如)10 个图像,丢弃已经显示的图像并从磁盘加载新图像。
  2. 使用专用的电影格式;这些格式具有帧间压缩,其中新帧仅保留它与前一帧之间的差异。这显然减少了内存使用量。查看libav的常见问题解答,了解如何将一系列图像转换为电影。
  3. 减小图像的大小。如果您不在 iPad 上,或者不需要视网膜分辨率,则减少像素数将大大降低内存需求。
于 2012-09-06T14:43:25.003 回答