必威体育Betway必威体育官网
当前位置:首页 > IT技术

iOS学习 --- 制作并调用Bundle资源包

时间:2019-09-28 14:45:43来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

bundle

背景:

开发项目中,我们公司的产品要给别人用,除了把代码封装成静态库之外,还需要把你的图片等资源封装成bundle包。 这样,别人拿你的产品来用的时候,既不会看到你的代码,也看不到你的图片等资源。如果他想要用你的图片资源,那么前提是他要知道你bundle里面的图片资源的名称。

什么是Bundle文件?

简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个Bundle文件。方便在其他项目中引用包内的资源。

Bundle文件的特点?

Bundle是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的2进制数据

制作步骤:

一,创建bundle项目

打开Xcode

command + shift +N

新建项目

bundle项目属于mac开发里面的种类,所以选择mac下面的。

图1-1图1-1

 

图1-2

二,在bundle资源包中添加图片

方法1:

1>使用Asset管理图片

因为Xcode的assets,可以自动识别图片的二倍图还是三倍图,所以,就在bundle工程里面创建一个Assets,到时候就调用图片名称,会自动对应加载;

反正,只要把后缀为@2x,@3x的图片拖到Assets就会自动放到对应的位置;

下面就创建一个Assets文件

图2-1

2>拖入对应的图片

图2-2

方法2:创建images文件夹,如图所示,再拖入对应后缀名的图片;

三,command + B编译生成Bundle包

Command + B后生成Bundle包,点击Products里面的bundle文件,Show in Finder 看到制作好的Bundle包

图3-1

完成,下面就是在工程中使用了......

四,集成到需要图片资源的项目中使用

把Bundle资源包放到项目的任意(或指定)的文件夹下,如下图:

图4-1

 

调用:


UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];    
button.frame = CGRectMake(100, 200, 30, 30);    
[self.view addSubview:button];

//设置图片
//方法1

NSString *bundlePath = [[ NSBundle mainBundle] pathForResource:@"M_Images" ofType :@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];
NSString *img_path = [bundle pathForResource:[NSString stringWithFormat:@"%@",@"close"] ofType:@"png"];
UIImage*image_1=[UIImage imageWithcontentsOfFile:img_path];
[button setImage:image_1 forState:UIControlStateNormal];


//方法2
if (@available(iOS 8.0, *)) {
        [button setImage:[UIImage imageNamed:@"close" inBundle:ZFBundle compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
    } else {
        // Fallback on earlier versions
    }


//上面用到了宏定义

#define ZFBundle_Name @"M_Images.bundle"
#define ZFBundle_Path [[[NSBundle mainBundle] resourcePath] stringByAPPendingPathcomponent:ZFBundle_Name]
#define ZFBundle [NSBundle bundleWithPath:ZFBundle_Path]

 

总结:

以上就是今天的学习内容,请多指正,谢谢!!!

参考:

https://blog.csdn.net/Feng512275/article/details/77982962

https://blog.csdn.net/u012265444/article/details/79138958

https://blog.csdn.net/yuge486/article/details/79580339

https://www.jianshu.com/p/44aacd5b8adb

相关阅读

自然语言处理之近义词包 Synonyms

目前很缺乏质量好的中文近义词库,于是便考虑使用 word2vec 训练一个高质量的同义词库将“非标准表述”映射到“标准表述”,这就是 S

iOS 给APP评分无法连接到App Store解决方法

最近突然发现APP内给应用评分功能跳转到App Store之后提示“无法连接到App Store”,研究之后发现是iOS 11系统的适配问题,这里记录

全景中的包围曝光和HDR应用

全景摄影的过程就是一部与大光比做斗争的史诗大片,因为总有一个角度会拍到光源,这对新手们非常头痛。如何解决大光比?如何

什么是淘宝红单?用红包刷单有哪些要求?

淘宝作为中国最大的网购平台,其衍生出来的灰色产业链是极其多的,其中要属淘宝刷单最多了。存在即合理,为什么会有淘宝刷单兼职行业应

高并发-【抢红包案例】之三:使用乐观锁方式修复红包超

文章目录导读乐观锁CAS 原理ABA问题库表改造代码改造RedPacketDao新增接口方法及Mapper映射文件UserRedPacketServic接口及实现类

分享到:

栏目导航

推荐阅读

热门阅读