UIImage加載圖片Images.xcassets加載方法的影響
UIImage加載圖片的方式以及Images.xcassets對于加載方法的影響
圖片緩存
根據是否將創(chuàng)建好的對象緩存入系統(tǒng)內存,有兩類創(chuàng)建UIImage對象的方法可選:
- 緩存:+ imageNamed:,只需傳入文件名.擴展名(可選)即可。
- 不緩存:+ imageWithContentsOfFile:,必須傳入文件的全名(全路徑+文件名)。
注意,對于有緩存功能的方法來說,其創(chuàng)建對象的步驟如下:
- 根據圖片文件名在緩存池中查找特定的UIImage對象,入存在,將這個對象返回。
- 如果不存在,則從bundle中加載圖片數(shù)據,創(chuàng)建對象并返回。
- 如果相應的圖片數(shù)據不存在,返回nil。
Images.xcassets
Images.xcassets在app打包后,以Assets.car文件的形式出現(xiàn)在bundle中。其作用在于:
- 自動識別@2x,@3x圖片,對內容相同但分辨率不同的圖片統(tǒng)一管理。
- 可以對圖片進行剪裁和拉伸處理。
UIImage從bundle中加載圖片資源
注意
1.Images.xcassets中的圖片資源只能通過imageNamed:方法加載,通過NSBundle的pathForResource:ofType:無法獲得圖片路徑。因此,Images.xcassets只適合存放系統(tǒng)常用的,占用內存小的圖片資源。
2.imageNamed:方法同樣可以加載根目錄中的圖片資源。
3.要想利用imageWithContentsOfFile:方法以不緩存的形式加載圖片,必須將圖片資源放置在根目錄中。
4.相對于jpg,iOS對png的支持較好,例如,如果從Images.xcassets以外的地方加載圖片,必須在文件名后加擴展名,例如:
// pic.jpg處于根目錄下 [UIImage imageNamed:@"pic"]; // 錯誤,圖片未能正確加載 [UIImage imageNamed:@"pic.jpg"]; // 正確
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
iOS如何實現(xiàn)強制轉屏、強制橫屏和強制豎屏的實例代碼
本篇文章主要介紹了iOS如何實現(xiàn)強制轉屏、強制橫屏和強制豎屏的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07