Iphone 在中的uiimageview中加载大图像时的内存消耗

Iphone 在中的uiimageview中加载大图像时的内存消耗,iphone,ipad,uiimageview,uiimage,Iphone,Ipad,Uiimageview,Uiimage,我正在加载大小为2480的UIImage × 使用UIViewContentModeScaleAspectFit将3508导入UIImageView。加载此图像时,我收到内存警告。在我在UIImageView中加载了几个这样大小的图像后,应用程序崩溃了。有没有办法解决这个问题 那么,根据文件: 应避免创建大于1024 x 1024的UIImage对象 缩小图像,然后将其加载到ImageView中,有很多库可以实现这一点,这里有一个: 您可以使用此功能进行缩放 该方法在以下链接中简单介绍: 此问题

我正在加载大小为2480的UIImage × 使用UIViewContentModeScaleAspectFit将3508导入UIImageView。加载此图像时,我收到内存警告。在我在UIImageView中加载了几个这样大小的图像后,应用程序崩溃了。有没有办法解决这个问题

那么,根据文件:

应避免创建大于1024 x 1024的UIImage对象

缩小图像,然后将其加载到ImageView中,有很多库可以实现这一点,这里有一个:


您可以使用此功能进行缩放 该方法在以下链接中简单介绍:


此问题的解决方案包括加载图像的缩放版本(*1),或者您可以选择在CATiledLayer(*2)的帮助下以全分辨率显示图像

  • [UIImage imageWithCGImage:比例:方向:]

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

    您可以在添加到IMAGEVIEW之前缩放图像是的,您可以计算内存使用量:2480 × 3508*4=34799360字节内存。我使用的是scrollview,uiimageview是uiscrollview的子视图。因此,如果我减小图像大小,图像在缩放时会变得模糊。在这种情况下,您应该查看CATiledLayer:k。这是一个很好的选择。在使用这个巨大的图像后,我将UIImage.image属性设置为nil。不要释放用于加载前一个大映像的内存。