2010-05-20 111 views
1

我正在開發一個應用程序,其中包含像iPhone中的默認圖片瀏覽器功能。我做了一些類似的事情。但從遠程服務器加載一些(近10-15)圖像後,我收到內存警告。我的要求是逐個加載圖像。爲此,我在滾動視圖中放置圖像並增加滾動視圖的contentSize。它會正常工作。但由於內存警告應用程序相當。應用程序像iPhone中的默認圖片瀏覽器?

夥計們,有任何想法來處理這個功能,它類似於照片應用程序沒有問題?

在此先感謝。

回答

0

由於您一次將10個或更多圖像的數據保存在內存中,因此內存不足。你需要在你的代碼中有更多的邏輯,它不僅可以預先加載和增加滾動視圖的內容大小,還可以隨着用戶滾動到更新的東西而從滾動視圖(從而從內存中)移除UIImageViews。 (您也可以將「逐出」圖像保存到磁盤上的緩存區域,這樣如果用戶向後滾動,則不必再次訪問服務器。)

+0

非常感謝quixoto。這種方法的任何示例代碼將對我更好PLZZZZZZZZ – 2010-05-20 05:21:01

+0

自己沒有任何方便。這是非常依賴於應用程序的事情。在滾動視圖中圍繞一系列「頁面」,將其作爲隊列使用,並在每次前進時將最不新近的一個緩衝下來。 – 2010-05-20 14:39:08

+0

我已經實現了這樣的東西。但這並不是直截了當的。如果您在用戶處於幻燈片移動過程中時開始加載內容,則幻燈片會顯得很糟糕,因爲幻燈片會卡住。我正在做一些後臺線程的加載,但仍然有很多調整,以使它適用於所有新舊設備。爲了讓您更容易,您可以放棄對舊的慢速設備的支持,並且一次將更多的「頁面」保存在內存中,以儘量減少加載時間。然後,有人可能會有更好的解決方案...蘋果的專輯應用程序顯示「預覽」圖像的低分辨率版本等。 – Jonny 2011-07-13 17:18:34

0

如果您使用UITableView,它只會請求圖像並在需要時自動清除屏幕外單元以節省內存。不過,它可能不適合您的應用程序的審美。

相關問題