大图像导致崩溃xCode

时间:2011-02-27 17:09:41

标签: iphone xcode image ios uiimageview

我有一个6000x3000像素的图像,它位于我的xCode项目的可缩放视图中。在初始视图中,按下按钮以使用大的可缩放图像访问视图。这一切都很好,除了经常“加载”图像所花费的时间导致应用程序崩溃,特别是当我在旧设备上测试时(它似乎在我的4G itouch上大部分时间工作正常) 。有没有办法“预渲染”这一个大图像,或者我可以做些什么来防止崩溃?

1 个答案:

答案 0 :(得分:4)

算一算:6000 x 3000 x 3(红绿蓝)= 54,000,000字节= 51.5MiB的原始数据。正常的图像处理有很多开销,而且只占用太多内存。

根据this question,解决方案是使用CATiledLayer。据我了解,您需要将大图像分成较小的部分,并在CATiledLayer的帮助下绘制这些较小的部分。

编辑:以下是UIView类引用的引用:

  

注意:在iOS 2.x中,UIView对象的最大大小为1024 x 1024点。在iOS 3.0及更高版本中,视图不再受限于此最大大小,但仍受其使用的内存量的限制。保持视图尺寸尽可能小是符合您的最佳利益的。无论运行哪个版本的iOS,您都应该考虑平铺任何明显大于屏幕尺寸的内容。

阅读:如果它更大,请使用CATiledLayer绘制较小的部分。