Assets.xcassets是用來存放圖像資源文件的。將一個圖片放在Assets里面如下圖所示:
隨著項目的增大,有時候使用一個Assets.xcassets文件,就顯得比較臃腫了,此時我們可以根據項目結構,新建多個Assets.xcassets文件,具體步驟如下:
1.點擊File -- New -- File...(或者點擊command+N),在彈出的對面板中選擇Assets.xcassets
2.點擊Next,輸入xxx.xcassets的文件名字
3.點擊create,創建xxx.xcassets文件。
創建完成以后,項目目錄結構中,就會增加一個新建的xxx.xcassets文件,如下圖所示
此時,xxx.xcassets文件中可加入新的圖片,加載圖片的方法與系統的Assets.xcassets文件相同,如:
UIImage *image = [UIImage imageNamed:@"Contact_icon_ContactTag"];
UIImageView *imageview = [[UIImageView alloc] initWithImage:image];
imageview.frame = CGRectMake(50, 50, image.size.width, image.size.height);
[self.view addSubview:imageview];
效果如圖所示:
總結:
如果圖片存放在Assets資源管理器,最終里面所有的圖片會被打包成Assets.car ,可用cartool可以把圖片弄出來,詳細可參考 iOS中快速獲取圖片資源,使用這Assets用來存放圖像資源文件有以下幾個好處:
1、自動管理圖片,如@1x,@2x圖片,使用的時候使用Asset 名字即可;
2、管理應用的Icon和Default圖片,這個挺方便的,可以完全拋開以前規范命名如Icon.png,Icon@2x.png,Xcode會自動識別尺寸然后匹配進去;
3、方便模塊圖片管理,可以針對模塊建立Component1.xcassets,在這個Category中去建立新的Image set;
4、可以可視化管理圖片拉伸,從而拋棄到處使用resizeImage...來獲取拉伸圖片;
使用Assets注意事項:
- 1、在Assets中的圖片不能通過imageWithContentsOfFile加載;
imageNamed,其參數為圖片的名字【參考:iOS 加載圖片imageNamed 和imageWithContentsOfFile的區別】。
這個方法用一個指定的名字在系統緩存中查找并返回一個圖片對象如果它存在的話。如果緩存中沒有找到相應的圖片,這個方法從指定的文檔中加載然后緩存并返回這個對象。因此imageNamed的優點是當加載時會緩存圖片。所以當圖片會頻繁的使用時,那么用imageNamed的方法會比較好。
imageWithContentsOfFile,其參數也是圖片文件的路徑。 僅加載圖片,圖像數據不會緩存。因此對于較大的圖片以及使用情況較少時,那 就可以用該方法,降低內存消耗。
- 2.imageName:加載的圖片要么是Assets中的圖片,要么是資源包中的圖片,如果要用imageName:加載其他的圖片,必須在文件名后面添加擴展名,如:
UIImage *image=[UIImage imageNamed:@"plus.png"];