iOS学习 --- 制作并调用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

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值