UIImage初始化的區(qū)別兩種方法介紹(面試常見)
UIImage可以通過以下兩種方式進行初始化:
//第一種初始化方式:【注意使用這種初始化的時候如果是png格式的可以不給后綴名,根據(jù)屏幕的的分辨率去匹配圖片】 UIImage *image = [UIImage imageNamed:@"v_red_heart_selected"]; //第二種初始化方式:【必須拼接圖片的全名稱,否則image的路徑為空】 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"v_red_heart_selected@x.png" ofType:nil]; UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
兩種方式的區(qū)別:
第一種初始化方式:
使用imageNamed:第一次讀取的時候,先把這個圖片放到緩存里,下次再使用到這個同名圖片的時候直接從緩存中讀?。粌?yōu)點:方便快捷,只有第一次使用的時候稍慢,接下來再使用就會稍微快點;缺點:如果在當(dāng)前工程中只使用一次會浪費內(nèi)存。【這個內(nèi)存在程序關(guān)閉的時候才釋放】
第二種初始化方式:
使用initWithContentsOfFile初始化圖片的時候,每次都會根據(jù)路徑去讀取,不會占用內(nèi)存,如果圖片在當(dāng)前工程中只使用一次,應(yīng)該選擇這個方法
相關(guān)文章
Flutter自定義實現(xiàn)神奇動效的卡片切換視圖的示例代碼
這篇文章主要介紹了Flutter自定義實現(xiàn)神奇動效的卡片切換視圖的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04
Android 中無法取消標(biāo)題欄的問題小結(jié)(兩種方法)
我們都知道取消標(biāo)題欄有兩種方式,一種是在Java代碼中取消,另一種通過設(shè)置styles.xml文件中的Theme即可,下面就兩種方法給大家簡答介紹下2016-12-12
Android 調(diào)用系統(tǒng)照相機拍照和錄像
本文主要介紹Android 調(diào)用系統(tǒng)照相機拍照和錄像的資料,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下2016-09-09
Android Studio中一套代碼多渠道打包的實現(xiàn)方法
這篇文章主要介紹了Android Studio中一套代碼多渠道打包的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-05-05
android自動生成dimens適配文件的圖文教程詳解(無需Java工具類)
這篇文章主要介紹了android自動生成dimens適配文件,無需Java工具類,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03

