2011-05-24 116 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