2

我使用蘋果的ScrollingSuite對於一些大型的圖像顯示大量滾動視圖後釋放。(768 x1024)的ImageView的的圖像是由iPhone內存犯規調用零

controller.numberImage.image = [self.contentList objectAtIndex:page]; 

其中,numberImage設置是一個UIImageView,控制器是我在scrollview中添加的viewcontroller的一個對象。我設置的圖像作爲零當頁面被

controller.numberImage.image = nil; 

滾出視但問題是我的應用程序運行的內存通過圖像滾動時收到內存警告。每次顯示新圖像時,我都可以看到儀器工具(內存標籤70)中的內存增加,它在Google上顯示ImageIO。請幫我這個

在此先感謝

+0

您是否認爲self.contentList在內存中保留圖片的引用?應釋放每個引用以釋放對象。 – rjobidon

回答

1

嘗試取出ImageView的([controller.numberImage removeFromSuperview];),然後添加回來之前,它是即將映入眼簾([controller addSubview:[[UIImageView alloc] initWithImage:[self.contentList objectAtIndex:page]]];)可能?

0

各種解決方案可以爲這種類型的問題,所以...

  1. 我覺得你可以再次圖像中刪除像[controller.numberImage removeFromSuperview]或Alloc的ImageView的,當你需要的UImageView。它可以成爲第一解。

  2. 如果我解釋的話,一次可以加載3張圖像,然後加載當前圖像,上一張圖像和下一張圖像。這意味着如果你想看到圖像2每次加載3張圖像,圖像1,圖像2 ,和圖像3.當你滾動到下一個圖像,然後加載圖像2,圖像3和圖像4,並釋放圖像1 ...等等......反之亦然,用於加載圖像上一圖像加載。

  3. 最糟糕的解決方法是嘗試降低圖像分辨率而不更改圖像的大小。