2011-08-11 36 views
0

我想添加動畫顯示圖像陸續爲iPhone應用程序:崩潰,而在我的iPhone應用程序運行的圖像動畫

imgView.animationImages = [NSArray arrayWithObjects: 

          [UIImage imageNamed:@"image1.png"], 
          [UIImage imageNamed:@"image3.png"], 
          [UIImage imageNamed:@"image5.png"], 
          " 
          " 
          [UIImage imageNamed:@"image150.png"],nil]; 

imgView.animationDuration = 13.00; 
imgView.animationRepeatCount = 1.0; 
[imgView startAnimating]; 

如何管理圖像,以用於流暢的動畫和應用程序可以在不崩潰運行?

我已經壓縮了我的圖像大小。

+0

壓縮圖像的圖像不會佔用較少的內存時加載。爲了得到估計的字節人像使用這個forumla「寬x高x 4.其中4是每個顏色的字節數 – rckoenes

+0

你可以提供崩潰的原因,可以在控制檯找到 –

+0

它適用於模擬器,但崩潰時在設備上運行 – ios

回答

2

IMO,既然你說應用程序在模擬器下工作正常,並在設備上崩潰,導致崩潰的最可能原因是你的內存過多,操作系統殺死了應用程序(在發送至少一個記憶警告以我的經驗)。

它的一個非常明顯的跡象是你的應用程序在沒有來自調試器的任何錯誤消息的情況下死亡(如果你嘗試在調試器-cmd-Y下運行它)。

此行爲的一種變體是操作系統發送內存警告,您的應用程序會卸載一些資源(這是由UIKit爲您自動完成的),然後您的應用程序不再發現它們並崩潰。在這種情況下,您應該在錯誤日誌中看到一些有意義的消息。

您可以嘗試將組成動畫的圖像數量減少到50個,以查看是否存在崩潰;或者你可以在Instruments下運行該應用程序,以查看內存如何隨着時間的推移而增長,並查看崩潰是否與內存峯值相關。順便說一句:你的圖像有多大?可能甚至50可能很多...

另一個可能的原因是imgView.animationImages不能正確保留,但我懷疑這一點,因爲你說在模擬器下一切工作正常。

+0

Sergio是正確的在設備上運行時導致崩潰的原因是使用了所有的應用程序內存,這不是一個「泄漏」,因爲對象沒有正確釋放,這是animationImages API的一個基本問題,您不應該使用它。可以閱讀更多深入的信息,在我的答案這個相關的問題:http://stackoverflow.com/questions/8112698/how-to-do-animations-using-images-efficiently-in-ios/17129053#17129053 – MoDJ