UIImage可以通過以下兩種方式進(jìn)行初始化:
//第一種初始化方式:【注意使用這種初始化的時(shí)候如果是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:第一次讀取的時(shí)候,先把這個(gè)圖片放到緩存里,下次再使用到這個(gè)同名圖片的時(shí)候直接從緩存中讀取;優(yōu)點(diǎn):方便快捷,只有第一次使用的時(shí)候稍慢,接下來再使用就會(huì)稍微快點(diǎn);缺點(diǎn):如果在當(dāng)前工程中只使用一次會(huì)浪費(fèi)內(nèi)存。【這個(gè)內(nèi)存在程序關(guān)閉的時(shí)候才釋放】
第二種初始化方式:
使用initWithContentsOfFile初始化圖片的時(shí)候,每次都會(huì)根據(jù)路徑去讀取,不會(huì)占用內(nèi)存,如果圖片在當(dāng)前工程中只使用一次,應(yīng)該選擇這個(gè)方法
新聞熱點(diǎn)
疑難解答
圖片精選