根據(jù)是否將創(chuàng)建好的對象緩存入系統(tǒng)內(nèi)存氏义,有兩類創(chuàng)建UIImage對象的方法可選:
緩存:+ imageNamed:,只需傳入文件名.擴展名(可選)即可晤郑。
不緩存:+ imageWithContentsOfFile:箕憾,必須傳入文件的全名(全路徑+文件名)。
注意混弥,對于有緩存功能的方法來說,其創(chuàng)建對象的步驟如下:
根據(jù)圖片文件名在緩存池中查找特定的UIImage對象对省,如存在蝗拿,將這個對象返回。
如果不存在蒿涎,則從bundle中加載圖片數(shù)據(jù)哀托,創(chuàng)建對象并返回。
如果相應(yīng)的圖片數(shù)據(jù)不存在劳秋,返回nil仓手。
Assets.xcassets
Assets.xcassets在app打包后,以Assets.car文件的形式出現(xiàn)在bundle中玻淑。其作用在于:
自動識別@2x嗽冒,@3x圖片,對內(nèi)容相同但分辨率不同的圖片統(tǒng)一管理补履。
可以對圖片進行剪裁和拉伸處理添坊。
UIImage從bundle中加載圖片資源
注意
Assets.xcassets中的圖片資源只能通過imageNamed:方法加載,通過NSBundle的pathForResource:ofType:無法獲得圖片路徑箫锤。
因此贬蛙,Assets.xcassets只適合存放系統(tǒng)常用的,占用內(nèi)存小的圖片資源谚攒。
imageNamed:方法同樣可以加載根目錄中的圖片資源阳准。
要想利用imageWithContentsOfFile:方法以不緩存的形式加載圖片,必須將圖片資源放置在根目錄中馏臭。