iOS开发: CocoaPods远程私有仓库的维护-添加图片资源

我们会将自己开发的开源框架或者私有框架上传至远程仓库, 在这些框架中可能会用到一些资源文件, 比如: 图片资源, 视频资源, 音频资源等

本编中主要讲述的是, 上传至远程仓库的框架中, 资源的添加和引用问题
下面使用的工程是在本地创建的CocoaPods私有库中的测试工程, 具体创建方法可以看iOS开发: 配置CocoaPods远程私有仓库

添加资源

  • 当使用CocoaPods管理远程仓库的代码时, 都会有一个podspec文件, 在这个文件中, 我们需要加入几句代码来表示需要引用的资源, 路径等, 如下图:


    podspec文件中关于资源文件的代码
  • 上述图片中的路径位置在下面的图中


    资源文件存放位置
  • 将图片资源放在Assets文件夹中


    放置图片
  • 当图片放置好, podspec文件也添加引用资源的代码后, 使用终端cd到当前工程, 并执行pod install


    Podfile文件内容

    执行pod install后, 文件加载成功

引用资源

  • 使用CocoaPods添加的代码库, 在工程编译后, 图片等资源会在包的下图位置中


    代码库的Bundle
  • 使用代码查找当前文件所在的bundle包可以使用NSBundle类的+ (NSBundle *)bundleForClass:(Class)aClass;方法

  • Xib文件的引用方法

    • Xib文件位置


      Xib文件位置
    • 注意: 使用 [NSBundle mainBundle] 找到的bundle并不是Pods库中文件所在的直接Bundle

      加载Xib文件

  • 图片资源都会在LTFM.bundle包中, 所以在引用图片的时候, 不能使用[UIImage imageNamed:@"图片名"]的方式, 而是需要使用图片路径来加载图片

    根据图片路径显示图片

    引用结果

    • 注意, 在查找path时, 要先找到当前文件所在Bundle, 然后就是图片需要使用全称, 不能仅仅使用tabbar_bg.png, 并且需要指明在哪个路径下查找, 这里是LTFM.bundle
  • 由于图片名称必须写全, 所以在适配2x, 3x图的时候, 可以使用下面的方法获取当前屏幕需要使用的图片倍率, 进行动态适配图片


    动态适配图片
  • 如果直接使用[UIImage imageNamed:@"图片名"] 查找图片, 那么就不会加载出来


    [UIImage imageNamed:@"图片名"]

    [UIImage imageNamed:@"图片名"]引用图片结果
  • 如果是Xib中加载的图片, 那么可以在图片名字前面拼接图片的包名就可以了, 例如要加载的图片名字是 tabbar_np_shadow@2x.png, 那么使用的事就只需要写成LTFM.bundle/tabbar_np_shadow 就可以了

    Xib中引用图片

  • 在测试工程中测试完毕后, 就可以添加到远程私有仓库了, 并将podspec文件配置好后, 传到远程索引库即可

  • 注意: 使用CocoaPods加载的第三方库中如果有xib文件, 那么就要注意, 如下图


    注意

    错误信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CocoaPods 可以说是 iOS 开发应用最广泛的包管理工具,本篇文章主要介绍 CocoaPods 的第三方库...
    tianziyao阅读 1,639评论 0 26
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,563评论 7 249
  • 在真机高度的时候,正常运行Xcode,发现App已经正常安装到手机,但是Xcode会有如下报错: 在点击App运行...
    wealon阅读 334评论 0 1
  • 大半个青春都要挥霍完了,才发现,没有一个可以牵手一起看黄昏的人。曾经喜欢过多少人、小鹿乱撞过多少人、心心念念过多少...
    一朵哈哈花阅读 217评论 0 1
  • 今天看了一个演讲,一位老师对于身心障碍的学生做出的回应,她提到大人老师们应该以身作则,她班上有一个说话动作迟缓的小...
    甜心教主阅读 236评论 0 0