2009-07-27 25 views
2

我正在處理照片庫應用程序。根視圖是將用戶帶到縮略圖視圖的導航控制器。輕點任何縮略圖都會將用戶帶到PhotoView,它將全屏顯示輕擊圖像。UIScrollView應用程序在設備中崩潰但在模擬器中運行完美

下面是我在我的PhotoViewController做了:

的方法是非常相似ScrollingMadness項目,我發現在github上。

我初始化一個UIScrollView並將其作爲子視圖添加到我的視圖控制器的視圖。設置UIScrollView的一些基本屬性。 將圖像添加到UIImageViews(5個數字)。 將所有這些imageView作爲子視圖添加到UIScrollView。 當對任何圖像執行縮放操作時,將從滾動視圖中刪除除當前圖像子視圖之外的所有圖像子視圖。 當圖像縮小回到最小比例時,所有圖像將被添加回UIScrollView。

正如Apple在示例代碼中所述,我使用TapDetectingImageView委託來創建imageViews並處理觸摸事件。

當我運行該應用程序時,在模擬器中一切工作正常。沒有任何問題。但是當我在設備上運行應用程序時,在滾動到第3或第4張圖像後它會崩潰。在調試過程中,我發現在滾動到第3或第4張圖像後會調用didReceiveMemory警告。 我使用儀器運行應用程序。發生崩潰時,對象分配顯示只有1.5-2MB的分配級別。我相信這個級別的內存使用是非常正常的......對嗎?

任何誰之前經歷過或有任何意見如何我可以擺脫它...這將是我在這個世界上需要的所有幫助。

如果您需要其他信息,請告知我。

PS>其令人沮喪的看到整個應用程序完美的模擬器,但在設備:(

回答

2

它崩潰,因爲它的運行內存崩潰,有一件事你應該檢查是圖片的大小,是你從照片庫中選擇無圖像編輯的圖像,有時候這會給你1600x1400分辨率的圖像,這幾乎會導致手機崩潰,因爲它的內存不足,因此,您應該將圖像調整爲較小的圖像。可能導致它的另一個問題是你一次加載太多的圖像(我不這麼認爲),如果你正在使用滾動視圖來滾動類似於iPhone上的照片應用程序,那麼你應該只需要一次加載3張圖片。也許你還沒有選擇th正在縮放時正確顯示圖像。我不知道如果你試圖完成類似的功能,在iPhone上的照片應用程序中的圖片滾動,如果你看看示例項目PageControl,他們說明在那裏很好。

+0

丹尼爾 - 你是像素完美的權利!圖像是1200X1600。我把它們分解爲320x480,就像魅力一樣。 我現在使用的圖像數量是5.但最終我將不得不使用20個圖像。如果你可以請建議如何懶惰的imageViews或關於一次加載3張圖像,如你所說 - 會很有幫助。 放大部分已被照顧。沒有什麼會進出內存。它僅僅是子視圖中內存中已有內容的輸入內容。 感謝您的幫助! – 2009-07-27 17:53:46

相關問題