轉(zhuǎn)自?http://www.reibang.com/p/6efc2120d225 制作者:二豬哥
Assets.xcassets是用來(lái)存放圖像資源文件的俺榆。將一個(gè)圖片放在Assets里面如下圖所示:
隨著項(xiàng)目的增大邑商,有時(shí)候使用一個(gè)Assets.xcassets文件菠齿,就顯得比較臃腫了,此時(shí)我們可以根據(jù)項(xiàng)目結(jié)構(gòu),新建多個(gè)Assets.xcassets文件,具體步驟如下:
1座哩、點(diǎn)擊File -- New -- File...(或者點(diǎn)擊command+N)苍凛,在彈出的對(duì)面板中選擇Asset Catalog
2趣席、點(diǎn)擊Next,輸入xcassets的文件名字Home醇蝴;點(diǎn)擊create宣肚,創(chuàng)建Home.xcassets文件。
創(chuàng)建完成以后悠栓,項(xiàng)目目錄結(jié)構(gòu)中霉涨,就會(huì)增加一個(gè)新建的Home.xcassets文件,如下圖所示:
此時(shí)惭适,Home.xcassets文件中可加入新的圖片笙瑟。
加載圖片的方法與系統(tǒng)的Assets.xcassets文件相同,如:
UIImage *image = [UIImage imageNamed:@"img_doc_bg"];
UIImageView *imageview = [[UIImageView alloc] initWithImage:image];
imageview.frame = CGRectMake(50, 50, image.size.width, image.size.height);
[self.view addSubview:imageview];
總結(jié):
如果圖片存放在Assets資源管理器,最終里面所有的圖片會(huì)被打包成Assets.car癞志,可用cartool可以把圖片弄出來(lái)往枷,詳細(xì)可參考iOS中快速獲取圖片資源,使用這Assets用來(lái)存放圖像資源文件有以下幾個(gè)好處:
1凄杯、自動(dòng)管理圖片,如@1x,@2x圖片,使用的時(shí)候使用Asset 名字即可错洁;
2、管理應(yīng)用的Icon和Default圖片,這個(gè)挺方便的,可以完全拋開以前規(guī)范命名如Icon.png,Icon@2x.png,Xcode會(huì)自動(dòng)識(shí)別尺寸然后匹配進(jìn)去盾舌;
3墓臭、方便模塊圖片管理,可以針對(duì)模塊建立Component1.xcassets,在這個(gè)Category中去建立新的Image set蘸鲸;
4妖谴、可以可視化管理圖片拉伸,從而拋棄到處使用resizeImage...來(lái)獲取拉伸圖片;
使用Assets注意事項(xiàng):
1酌摇、在Assets中的圖片不能通過(guò)imageWithContentsOfFile加載膝舅;
imageNamed,其參數(shù)為圖片的名字【參考:iOS 加載圖片imageNamed 和imageWithContentsOfFile的區(qū)別】窑多。
這個(gè)方法用一個(gè)指定的名字在系統(tǒng)緩存中查找并返回一個(gè)圖片對(duì)象如果它存在的話仍稀。如果緩存中沒(méi)有找到相應(yīng)的圖片,這個(gè)方法從指定的文檔中加載然后緩存并返回這個(gè)對(duì)象埂息。因此imageNamed的優(yōu)點(diǎn)是當(dāng)加載時(shí)會(huì)緩存圖片技潘。所以當(dāng)圖片會(huì)頻繁的使用時(shí),那么用imageNamed的方法會(huì)比較好千康。
imageWithContentsOfFile享幽,其參數(shù)也是圖片文件的路徑。 僅加載圖片拾弃,圖像數(shù)據(jù)不會(huì)緩存值桩。因此對(duì)于較大的圖片以及使用情況較少時(shí),那 就可以用該方法豪椿,降低內(nèi)存消耗奔坟。
2携栋、imageName:加載的圖片要么是Assets中的圖片,要么是資源包中的圖片咳秉,如果要用imageName:加載其他的圖片婉支,必須在文件名后面添加擴(kuò)展名,如:
UIImage*image=[UIImage imageNamed:@"plus.png"];