美文网首页iOS 坑的集中营iOS Developer程序猿阵线联盟-汇总各类技术干货
使用CocoaPods集成的远程私有公有库如何使用图片资源

使用CocoaPods集成的远程私有公有库如何使用图片资源

作者: 踩坑小分队 | 来源:发表于2017-05-25 10:36 被阅读81次

在这里默认你已经了解集成远程私有或者共有库了,如果不是很清楚,建议先看一下
<a href="http://www.jianshu.com/p/388ec8b46ced">教你一步步用CocoaPods创建远程公有库</a>
<a href="http://www.jianshu.com/p/db64c9a543a4">教你一步步用CocoaPods创建远程私有库</a>

1、首先是先把图片资源添加到封装的库中
1.1、


image.png

1.2、修改.podSpec文件指定我们资源文件的路径


image.png
注意一下,最后一定是写*
因为我们的图片资源不一定只有png有可能还有jpg格式的。

2、加载图片的写法
我们一般加载图片的写法有两种

UIImage *image = [UIImage imageNamed:@"图片"];
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"图片" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

但是发现这两种写法,都不能加载我们的私有库资源中的图片,上面的两种写法,倒是可以加载我们主项目中项目中的图片和Images.xcassets中的图片。

上面的两种写法,实际上是去加载的哪里的图片呢?


image.png
UIImage *image = [UIImage imageNamed:@"图片"];

这句话默认加载的是下面这两种图片,一种是我们直接拖到项目中的图片,一种是我们拖到Images.xcassets

image.png
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"图片" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

这句话加载的则是我们直接拖到主项目中的图片。

我们添加到pod库中的图片去哪里了?


image.png image.png

仔细看,我们的图片的位置是在一个单独的bundle中的。
所以上面的两种加载图片的方式肯定是不行的

加载封装到pod库中图片的正确姿势是这样的:

   // 注意图片名称的格式,必须写全 @2x 或者 @3x  后缀名都得写
    NSString *imageName = @"compose_photograph@2x.png";
    // 获取当前的bundle,self只是在当前pod库中的一个类,也可以随意写一个其他的类
    NSBundle *currentBundle = [NSBundle bundleForClass:[self class]];
    // 获取当前bundle的名称
    NSString *currentBundleName = currentBundle.infoDictionary[@"CFBundleName"];
    // 获取图片的路径
    NSString *imagePath = [currentBundle pathForResource:imageName ofType:nil inDirectory:[NSString stringWithFormat:@"%@.bundle",currentBundleName]];
    // 获取图片
    UIImage *imageFile = [UIImage imageWithContentsOfFile:imagePath];

当然了方法不是唯一的,最快捷的参考办法是参考其他的封装的pod是怎么加载图片的

image.png

当然了,也有这种做法,就是直接把所有的图片都存储在Assets.xcassets,然后远程私有库调用图片的时候和在主项目写法一致就可以了,但是这样的封装性貌似差点。不过没有最牛逼,只有最合适。

如有失误请各位路过大神即时指点,或有更好的做法,也请指点一二。在下不甚感激。

相关文章

  • CocoaPods远程私有库随笔

    需求: 使用Cocoapods集成自己在服务器的私有代码 剖析: 想使用Cocoapods远程集成自己的私有库, ...

  • 使用CocoaPods集成的远程私有公有库如何使用图片资源

    在这里默认你已经了解集成远程私有或者共有库了,如果不是很清楚,建议先看一下 教你一步步用CocoaPods创建远程...

  • pod私有库

    接着上两篇文章CocoaPods公有库和CocoaPods本地私有库,这篇就来讲解下CocoaPods远程私有库,...

  • CocoaPods 公有库, 私有库的创建

    CocoaPods 公有库, 私有库的创建 * 公有库 创建远程公有库,我们是用trunk的方式 1.1: 注册C...

  • CocoaPods远程私有库

    接着上两篇文章CocoaPods公有库和CocoaPods本地私有库,这篇就来讲解下CocoaPods远程私...

  • CocoaPods私有库制作

    前言 在前面的章节中有介绍过CocoaPods的使用: 制作CocoaPods公有库以及私有库的区别[https:...

  • iOS组件化-CocoaPods

    组件化练手,首先先使用CocoaPods创建本地私有库和远程私有库。CocoaPods大家都用过,那就废话不多说了...

  • 创建私有库

    在GitHub上创建私有库,并使用cocoapods导入使用 1、创建索引库 创建远程索引库 创建本地索引库 1)...

  • 组件化(第二篇)

    组件化 一、本地私有库方案优化二、远程私有库三、如何使用远端私有库四、远程私有库的升级五、远程私有库依赖问题六、远...

  • 组件化方案--使用cocoapods管理远程私有库

    这篇文章中完整的介绍了如何使用CocoaPods来管理你的远程私有库 有英语基础的同学也可以参考CocoaPods...

网友评论

  • 愚人船ios:只能写@2x 和@3x 中的一个吗?如果要适配还要单独判断吗?

本文标题:使用CocoaPods集成的远程私有公有库如何使用图片资源

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