imageWithContentsOfFile遇到的坑@2x @3x

在工程里拖入login@2x login@3x俩张图片,然后使用如下代码:
NSString *path = [[NSBundle mainBundle]pathForResource:@"login@2x" ofType:@"png"]; BGimageView.image = [UIImage imageWithContentsOfFile:path];
来获取对应的图片是没有问题的。
看到 Apple的开发文档说明  imageWithContentsOfFile:是可以自动区分@2x @3x 的图片的,所以我就试试吧。
NSString *path = [[NSBundle mainBundle]pathForResource:@"login" ofType:@"png"]; BGimageView.image = [UIImage imageWithContentsOfFile:path];
奇怪的事出现了、这么写并没有获取到图片,返回的path打印的结果为空。于是我就怀疑imageWithContentsOfFile能区分@2x @3x是不是真的。再次仔细查看文档我又看到了这么一句话

The full or partial path to the file.
`完整或部分链接`

是不是我获取的path有问题呢?然后我用NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"login.png"];BGimageView.image = [UIImage imageWithContentsOfFile:path];试了一下果然获取到了图片,真是皇天不负有心人。
理解下NSString *path = [[NSBundle mainBundle]pathForResource:@"login" ofType:@"png"];是获取到的是具体的某一个文件@2x就是@2x,@3x就是@3x,而Login就是login,所以用login来获取图片的地址因为根本就不存在login这个图片,而NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"login.png"];获取到的是类似文件的相对路径(这么理解)具体这里面的@2x、@3x就是imageWithContentsOfFile:自动来匹配了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值