Ios5 iOS中具有大量高分辨率图像的动画

Ios5 iOS中具有大量高分辨率图像的动画,ios5,animation,uiimageview,Ios5,Animation,Uiimageview,我对iOS编程相当陌生,我有这个问题 我看到的动画是一列火车疾驰而过。动画的帧是60ish(1024x768)PNG,我将其放入一个数组中,然后使用[myUIImageView startAntimating] 这很好,但我有另一个动画,我想稍后在同一个视图中运行,这是大约270个相同分辨率的PNG,其中火车停下来,车门打开。以同样的方式将这些图像添加到UIImageView中,应用程序就会崩溃。事实上,不添加第一组图像而只添加这些图像会导致应用程序崩溃 克服这个问题的最佳方法是什么?持有270

我对iOS编程相当陌生,我有这个问题

我看到的动画是一列火车疾驰而过。动画的帧是60ish(1024x768)PNG,我将其放入一个数组中,然后使用
[myUIImageView startAntimating]

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


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

持有270个这样的PNG需要大约850 mb的内存,因此不能同时持有所有PNG。我可以想出三种方法来解决这个问题-

  • 不要一次加载所有图像,而是只在内存中保存(比如)10个图像,丢弃已经显示的图像并从磁盘加载新的图像
  • 使用专用的电影格式;这些格式具有帧间压缩,其中新帧仅保留其与前一帧之间的差异。这显然减少了内存使用。请参阅,了解如何将一系列图像转换为电影
  • 缩小图像的大小。如果你不在iPad上,或者不需要视网膜分辨率,减少像素数量将大大降低内存需求

  • 谢谢:)所以如果我使用选项一,我会创建一个包含前十幅图像的数组,设置一次动画,然后用相同的数组替换它,但要设置下十幅图像,然后设置一次动画,依此类推?你觉得这样行吗?我会试一试,如果不行,我会尝试第二种选择。再次感谢你,差不多吧;您可能需要保存两个阵列,一个正在显示,另一个正在从磁盘加载图像。每当显示结束时,交换阵列。希望图像加载速度足够快。就我个人而言,我会直接去展示一部电影。为什么你要处理个人图片?因为这是我从设计师那里得到的。。。他要离开两个星期。我想我可以试着把这些图像拼接成一个视频。。。看看
    libav
    ——干杯。我在网上找到了一个免费的工具,简单地把这部电影拍得很好看。而且它演奏得很好。唯一的问题是,它像一部普通电影一样打开,带有控件和进度滑块等,看起来不像内置动画。不过我想我得调查一下。嗨,我也面临同样的问题。。如果你已经解决了,你能帮我吗?@Chitra我解决问题的方法如下所述。谁否决了这个问题,请解释一下原因