目前我的iPhone應用程序將所有圖標和按鈕加載爲.png圖像,這需要相當多的內存。是否有另一種加載多個圖像的格式或手段,以便我的應用程序使用的內存量大大減少?創建「精靈」以減少iPhone應用程序內存
我應該使用什麼特定的UIImage方法來加載圖像?
謝謝!
目前我的iPhone應用程序將所有圖標和按鈕加載爲.png圖像,這需要相當多的內存。是否有另一種加載多個圖像的格式或手段,以便我的應用程序使用的內存量大大減少?創建「精靈」以減少iPhone應用程序內存
我應該使用什麼特定的UIImage方法來加載圖像?
謝謝!
聲明:不是很熟悉iOS,可能不會有最好的答案。但我比較熟悉spriting,所以也許這會有所幫助。
傳統的方法可能會節省一些內存(取決於iOS設備如何處理圖像;我不確定)是將精靈連接成精靈表。
例如,它不是存儲16個單獨的32x32 PNG,而是存儲單個128x128 PNG(4乘4精靈),並按像素偏移顯示精靈。通常,偏移表示爲索引,在輔助方法中乘以32以找到實際的像素偏移量。
將精靈放入精靈表中僅僅是一種運行時性能改進,它不會降低內存使用率。事實上,精靈表通常會增加內存使用量,因爲在使用精靈之一時,表中所有精靈的所有內存都是以ram的形式分配的。 – MoDJ
這看起來很明顯,但是您是否確實發佈了對應用程序中使用的圖像內存的引用?例如,不要調用UIImageView imageNamed,因爲此方法在系統級別緩存數據。相反,使用UIImage imageWithContentsOfFile進行加載,然後在不再使用ref時將ref放到特定圖像上。除非您實際上始終在使用所有按鈕圖像,否則這可能會解決您的問題。 – MoDJ