美文网首页Foundatation
iOS Framework 开发资源文件(图片、本地HTML、x

iOS Framework 开发资源文件(图片、本地HTML、x

作者: 藏息烽 | 来源:发表于2018-03-27 09:15 被阅读0次

      自定义开发的 Framework 中本地资源加载与我们平时工程中的资源加载是不同的,主要原因是 Bundle 的不同 。开发的 Framework 是一个独立的 Bundle, 主工程中平时常用的 mainBundle 获取到的 Bundle 不是 Framework 的 Bundle。
    注: Bundle 介绍

    1. 自定义 Framework 中图片资源加载

    1.1 Image.bundle 中的图片加载

    NSBundle*bundle = [NSBundle bundleForClass:[self class]];
    UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"Image.bundle/%@",image] inBundle:bundle compatibleWithTraitCollection:nil];
    

    注:图片资源在 .bundle 文件中

    1. 使用 bundleForClass: 方法获取当前类所在的 bundle。
    2. 使用 UIImage 的类方法 + (nullable UIImage *)imageNamed:(NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection;此时 name 参数需要拼接上 image 所在 Image.bundle 的路径;bundle 参数需要传获取的 bundle 对象。
    3. xib、storyboard 中无法使用对应的图片资源。

    1.2 Images.xcassets 中的图片加载

    NSBundle *bundle = [NSBundle bundleForClass:[self class]];
    UIImage *image = [UIImage imageNamed:@"zlife_add_360yt" inBundle:bundle compatibleWithTraitCollection:nil];
    

    注:图片资源在 .xcassets 文件中
    1.类方法 + (nullable UIImage *)imageNamed:(NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection; 中的 name 参数直接传入图片名字。

    1. xib、storyboard 中可以使用对应的图片资源。

    2. 自定义 Framework 中本地 HTML 资源加载

    蓝色的是folder 黄色的是group。二者区别

    group:
    一般在工程中是文件夹的形式,如果选择 Group 则在本地的目录中会出现对应的文件夹,如果选择 Group without Floder 则本地以散乱的形式放在一起的,除非你是从外部以group的形式引用进来的。

    创建Group.png
    folder :
    只能作为资源,整个引用进项目,不能编译代码,也就是说,以folder形式引用进来的文件,不能被放在complie sources列表里面。 创建Folder.png

    2.1 本地 HTML 加载 Group 中的图片 Group项目中目录.png

    获取 HTML 文件

      NSBundle *bundle = [NSBundle bundleForClass:[self class]];
      NSURL *htmlFileURL = [[bundle URLForResource:@"home" withExtension:@"html"];
    

    HTML 文件中加载图片(包括 CSS)资源处的书写应该删除路径,只保留图片名字

     <a href="wg.html">
          <img src='wangguan.png' style="width:85%;margin-top: 10px;"/>
     </a>
    

    2.2 本地 HTML 加载 folder 中的图片

    Folder项目中目录.png

    HTML 文件中加载图片(包括 CSS)资源处的书写,应按正常的 HTML 资源路径书写

     <a href="wg.html">
          <img src='img/wangguan.png' style="width:85%;margin-top: 10px;"/>
     </a>
    

    3. 自定义 Framework 中 xib 文件等

    加载 xib

     NSBundle *woHomeBundle = [NSBundle bundleForClass:[WHMainViewController class]];
     WHMainViewController *mainVC = [[WHMainViewController alloc] initWithNibName:@"WHMainViewController" bundle:woHomeBundle];
    

    加载音频

    NSBundle *bundle = [NSBundle bundleForClass:[self class]];
    NSString *soundFilePath =  [bundle pathForResource: @"greed" ofType: @"mp3"];
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
    

    相关文章

      网友评论

        本文标题:iOS Framework 开发资源文件(图片、本地HTML、x

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