美文网首页
iOS中加载本地图片

iOS中加载本地图片

作者: ream_1489 | 来源:发表于2019-06-25 14:16 被阅读0次

iOS本地图片的加载方式非常灵活,适用不同的情况,在此记录一下.
一、Assets.xcassets
Assets.xcassets,属于管理图片的一个工程文件,内部可以创建图片集,icon集,启动图集等,能自动识别图片分辨率,使用的时候用imageNamed来获取图片,不能使用imageWithContentsOfFile。它是一个很好的图片管理文件,我们的一些小的icon或者图片可以放置进来,我们的启动图等在这里面管理还是比较方便,但是大量或者图片过大的话还是不建议使用。

UIImage *image = [UIImage imageNamed:@"drink_1.jpg"];

二、bundle文件
资源管理文件。右键添加file中,iOS-Resource 中的setting bundle进行创建。我们可以在这里放置大量的工程素材,方便统一查找和管理。同样可以把不同分辨率的图片素材都加进来。我们就可以用

NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"test.bundle/hotBagImage.png"];

UIImage *image = [UIImage imageWithContentsOfFile:filePath];
NSString *path = [[NSBundle mainBundle] pathForResource:@"drink_1" ofType:@"jpg"];

注意:有些文件如果在bundle下没有链接进去,是无法找到的

这种方式去获取到图片集合,不占用系统内存,大大节省了内存,起到了性能优化,缺点如果资源素材多,会增加包的体积,但这种一般不可避免

三、直接建立文件夹
这种方法建立的文件夹是蓝色的,不可以直接通过相对路径访问,要使用绝对路径

NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"image/drink_1.png"];

UIImage *image = [UIImage imageWithContentsOfFile:filePath];

四、把文件夹放到项目下,直接拖进工程,要选Create groups.
这种方法建立的文件夹会变成黄色,编译时会把绝对路径转换成相对路径,可以直接访问,使用

UIImage *image = [UIImage imageNamed:@"drink_1.jpg"];

也可以使用

NSString *path = [[NSBundle mainBundle] pathForResource:@"drink_1" ofType:@"jpg"];

相关文章

网友评论

      本文标题:iOS中加载本地图片

      本文链接:https://www.haomeiwen.com/subject/onctcctx.html