iOS中创建多个Assets.xcassets文件

Assets.xcassets是用来存放图像资源文件的。将一个图片放在Assets里面如下图所示:
1

随着项目的增大,有时候使用一个Assets.xcassets文件,就显得比较臃肿了,此时我们可以根据项目结构,新建多个Assets.xcassets文件,具体步骤如下:

  • 1、点击File -- New -- File...(或者点击command+N),在弹出的对面板中选择Asset Catalog
    2
    3
  • 2、点击Next,输入xcassets的文件名字Home;点击create,创建Home.xcassets文件。
    4

创建完成以后,项目目录结构中,就会增加一个新建的Home.xcassets文件,如下图所示:
5

此时,Home.xcassets文件中可加入新的图片。
6

加载图片的方法与系统的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];

效果如图所示:
7
总结:

如果图片存放在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注意事项:

这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话。如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象。因此imageNamed的优点是当加载时会缓存图片。所以当图片会频繁的使用时,那么用imageNamed的方法会比较好。

imageWithContentsOfFile,其参数也是图片文件的路径。 仅加载图片,图像数据不会缓存。因此对于较大的图片以及使用情况较少时,那 就可以用该方法,降低内存消耗。

  • 2、imageName:加载的图片要么是Assets中的图片,要么是资源包中的图片,如果要用imageName:加载其他的图片,必须在文件名后面添加扩展名,如:
UIImage *image=[UIImage imageNamed:@"plus.png"];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容