iOS - Bundle 资源文件包
原文:https://www.cnblogs.com/QianChia/p/6280435.html
1、Bundle 文件
Bundle 文件,简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个 Bundle 文件。方便在其他项目中引用包内的资源。
Bundle 文件是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle 包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的 2 进制数据。
2、制作 Bundle 文件
1、新建 Bundle 项目
创建名为 SourcesBundle(最后要生成的 Bundle 文件名称)的工程,注意 Bundle 默认是 macOS 系统的,Xcode 高版本中需要在 macOS => Framework & Library 选项下找到。
2、修改 Bundle 配置信息
因为 Bundle 默认是 macOS 系统的,所有需要修改他的信息,修改成 iOS 系统。
设置 Build Setting 中的
COMBINE_HIDPI_IMAGES
为 NO,否则 Bundle 中的图片就是 tiff 格式了。
3、可选配置
作为资源包,仅仅需要编译就好,无需安装相关的配置,设置 Skip Install 为 YES。同样要删除安装路径 Installation Directory 的值。
该资源包的 pch 文件和 strings 文件是可以删除的。
4、添加文件
将资源文件或文件夹拖动到工程中的 SourcesBundle 文件夹下面。
5、编译生成 Bundle 文件
我们分别选择 Generic iOS Device 和任意一个模拟器各编译一次,编译完后,我们会看到工程中 Products 文件夹下的 SourcesBundle.bundle 由红色变成了黑色。
然后 show in finder,看看生成的文件。我们看到它为真机和模拟器都生成了 .bundle 资源文件。
选中 .bundle 文件右键 显示包内容,我们可以看到之前拖拽到工程中的资源文件都在其中。
3、使用 Bundle 文件
将生成的真机(Debug-iphoneos)Bundle 资源文件拖拽到需要使用的工程中。
1、加载 Bundle 中的 xib 资源文件
// 设置文件路径NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"SourcesBundle" ofType:@"bundle"];NSBundle *resourceBundle = [NSBundle bundleWithPath:bundlePath];// 加载 nib 文件UINib *nib = [UINib nibWithNibName:@"BundleDemo" bundle:resourceBundle];NSArray *viewObjs = [nib instantiateWithOwner:nil options:nil];// 获取 xib 文件UIView *view = viewObjs.lastObject;view.frame = CGRectMake(20, 50, self.view.bounds.size.width - 40, self.view.bounds.size.width - 40);[self.view addSubview:view];
效果
2、加载 Bundle 中的图片资源文件
指定绝对路径的形式
UIImage *image = [UIImage imageNamed:@"SourcesBundle.bundle/demo2.jpg"];
拼接路径的形式
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"SourcesBundle" ofType:@"bundle"];NSString *imgPath= [bundlePath stringByAppendingPathComponent:@"demo4"];UIImage *image = [UIImage imageWithContentsOfFile:imgPath];
宏定义的形式
#define MYBUNDLE_NAME @"SourcesBundle.bundle"#define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:MYBUNDLE_NAME]#define MYBUNDLE [NSBundle bundleWithPath:MYBUNDLE_PATH]NSString *imgPath= [MYBUNDLE_PATH stringByAppendingPathComponent:@"demo4"];UIImage *image = [UIImage imageWithContentsOfFile:imgPath];
效果
iOS - Bundle 资源文件包相关推荐
- iOS 优化资源文件
资源文件是放置在应用程序本地与应用程序一起变异.打包和发布的非程序代码文件,如应用中的声音.视频.图片和文本文件等. 1.图片文件优化 图片文件优化包括文件格式和文件大小的优化.移动设备中,支持的图片 ...
- BundleLoader:帮你无缝加载自定义Bundle里的资源文件
引子 iOS开发中,我们封装SDK给第三方使用通常采用.a或.framework + .bundle的形式.相信封装过这种带bundle资源文件的SDK的同学们一定都会遇到这样一个小麻烦.那就是加载自 ...
- 反编译“微软纸牌集合”资源文件
@[TOC]反编译"微软纸牌集合"资源文件 成功反编译"微软纸牌集合"资源文件 一天时间,终于成功反编译了"微软纸牌集合(Microsoft Soli ...
- PyQt5教程(八)——实现QQ登录界面(二、加载资源文件)
实现QQ登录界面--加载资源文件 一.创建资源文件: 上篇文章创建了QQ登录界面,本篇介绍创建并加载资源文件. 1.创建资源文 ...
- iOS架构-静态库.a打包之资源文件打包成bundle(4)
iOS架构-静态库.a的打包及使用(一) iOS架构-静态库.a的脚本化打包及使用(二) 资源文件主要包括:xib.图片以及其他文件资源(json.string等).这里主要介绍 xib.图片.其他的 ...
- iOS 将图片文件打包为bundle资源
1. 创建bundle,如图,点击 + ,弹出选择框, macOS 下的Framework & Library ,点击bundle,输入bundle的名字,然后点击 finish. 2. ...
- iOS架构-静态库.framework之资源文件打包bundle(6)
iOS架构-静态库.framework手动打包及脚本化打包(5)中介绍了.framework的脚本化打包,虽然在iOS架构-静态库.a打包之资源文件打包成bundle(4)中已经演示过,其实是一样的. ...
- iOS获取App ipa包以及资源文件-----本人亲自测试可用!!!
原文地址::https://www.jianshu.com/p/fdb50d303ad6 相关文章 1.iOS获取App ipa包----https://www.jianshu.com/p/7710c ...
- 实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed
这篇文章,要解决的是,使用一个自定义的 imageNamed 函数来替代系统的 imageNamed 函数.内部逻辑,将贯穿对比论证 关于"合适"的图片的定义.对iOS加载图片的规 ...
最新文章
- SpringMVC常用Maven POM.xml依赖包片段
- 使用指针输入输出一维数组
- 联合国召开会议讨论“杀手机器人”问题
- sed修炼系列(四):sed中的疑难杂症
- Windbg无源码调试驱动
- DB-Engines 3月数据库排行:排名前十数据库七成分数下降
- [luogu3290][SCOI2016]围棋
- 【caffe-Windows】微软官方caffe之 Python接口配置及图片生成实例
- sql 算出下级销售总和_找出总和字符串
- 一个java类可以有_一个.java文件中可以有几个同级类?
- linux ssh v6,linux – TCP / IPv6通过ssh隧道
- sql 计算单行数据字段空值比例_如何利用工具,迅猛定位低效SQL? | 1分钟系列...
- python调用通达信函数用户指标_最新最全通达信公式教程大全(函数-指标-实例)...
- Python井字棋游戏开发带实验报告
- python设置excel单元格数据类型为文本_Python xlwt设置excel单元格字体及格式
- Python Numpy
- 【Mybatis-Plus】【异常】Inferred type ‘E‘ for type parameter ‘E‘ is not within its bound;
- 新手使用Docker教程
- web绘图技术之Raphael
- facebook修改权限_如何在Facebook上更改小组的隐私
热门文章
- java 根据详细地址提取小区_Java分析/测试工具EJ Technologies JProfiler介绍及安装教程...
- 计算机学院特色游戏,网络游戏七大特点浅析
- php 动态输出图片尺寸,高并发下 php 输出图像对性能开销大不大?
- mysql语句_Mysql语句
- 偷走不经意流逝的时光,摸鱼神器:神偷
- 支持Dubbo接口文档生成的工具!
- 漫漫优化路,总会错几步!记一次接口优化!
- 原来这就是Java代码生成器的原理啊,太简单了
- 每日一皮:啥一文理解TCP和UDP的区别!这张图才是最屌的!
- 为什么前后端分离了,你比从前更痛苦?