博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS生成Bundle包及使用
阅读量:5235 次
发布时间:2019-06-14

本文共 1650 字,大约阅读时间需要 5 分钟。

什么是Bundle文件?

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

Bundle文件的特点?

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

制作Bundle

1.新建bundle项目(xcode-file-new-project)

 

2.添加需要的图片

加入你需要编译在bundle中的资源文件。

 

3.你可以对编译的bundle进行一些可选的设置(可选)

a.作为资源包,仅仅需要编译就好,无需安装相关的配置

 

 

b.同样要删除安装路径。

 

 

c.iOS系统

 

d.进行以下设置否则Bundle里的图片为tiff格式

 

 编译生成 Bundle 文件。---分别选择 Generic iOS Device 和任意一个模拟器各编译一次,编译完后,我们会看到工程中 Products 文件夹下的 SourcesBundle.bundle 由红色变成了黑色。

 

show in finder,看看生成的文件。我们看到它为真机和模拟器都生成了 .bundle 资源文件

 

项目集成bundle

将编译好的MyBundle.bundle 文件直接加入到需要的项目中。

使用bundle中的资源

需要注意的就是,bundle是静态的,不进行编译的资源文件。所以,要使用bundle中的资源,就需要找到相应的资源路径。

VC获得bundle中的资源

NSString * bundlePath = [[NSBundle mainBundle]pathForResource: @"MyBundle"ofType:@"bundle"];

NSBundle *resourceBundle =[NSBundle bundleWithPath:bundlePath];

UIViewController *vc =[[UIViewController alloc]initWithNibName:@"vc_name"bundle:resourceBundle];

图片获得bundle中的资源

UIImageView *imgView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,50,50)];

UIImage *image = [UIImage

imageNamed:@"MyBundle.bundle/woquanbaobao"];

[imgView setImage:image];

或者

UIImageView *imgView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,50,50)];

NSString *imgPath= [bundlePath stringByAppendingPathComponent:@"woquanbaobao.png"];

UIImage *image_1=[UIImage imageWithContentsOfFile:imgPath];

[imgView setImage:image_1];

当然,可以写成预编译语句:

#define MYBUNDLE_NAME @"MyBundle.bundle"

#define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent: MYBUNDLE_NAME]

#define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]

效果图

 

 

 

转载于:https://www.cnblogs.com/huangzs/p/8037642.html

你可能感兴趣的文章
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
Java中正则表达式的使用
查看>>
算法之搜索篇
查看>>
新的开始
查看>>
java Facade模式
查看>>
NYOJ 120校园网络(有向图的强连通分量)(Kosaraju算法)
查看>>
SpringAop与AspectJ
查看>>