2011-05-24 57 views
1

加载在的UIImageView大图像我加载尺寸2480×3508的一个UIImage到的UIImageView使用UIViewContentModeScaleAspectFit。加载此图像时出现内存警告。当我在这个UIImageView中加载了一些这样大小的图片后,应用程序崩溃了。有什么方法可以解决这个问题吗?内存消耗,同时在

+1

可以添加到之前的ImageView缩放图像 – SriPriya 2011-05-24 12:49:45

回答

2

解决这一问题既包括装载的缩放版本O f图像(* 1),或者您可以选择使用CATiledLayer(* 2)以全分辨率显示。

  1. [UIImage imagewithGGImage:scale:orientation:];
  2. CATiledLayer example

附录:如果你的图像源是图片库,ALASSet提供已经缩放图像到全屏和全分辨率图像。您可以将两者与CATiledLayer结合使用。全屏图像被添加到CATiledLayer下方的图层中,以便在您等待CATiledLayer中的图块加载时用作占位符。

1

好了,根据文档:

您应避免创建大小大于1024×1024的UIImage对象。

减少你的图像,然后在您的ImageView加载它,有很多图书馆要做到这一点,这里是一个:

https://github.com/Nyx0uf/NYXImagesUtilities

+1

是这是真实的,则可以计算内存使用情况:2480×3508×4 = 34799360个字节的内存。 – rckoenes 2011-05-24 12:53:45

+0

我使用的是scrollview,uiimageview是uiscrollview的子视图。所以,如果我缩小图像尺寸的图像变得模糊,而变焦 – 2011-05-24 13:10:59

+0

在这种情况下,你应该在CATiledLayer看一看:http://www.olivetoast.com/blog/2009/08/simple-uiscrollview-catiledlayer-pdf-示例/ – Nyx0uf 2011-05-24 13:11:59