hi,勇敢的小伙伴儿们大家好,昨天一位朋友问我如何处理项目里的图片,是放在Assets.xcassets吗,我说是啊,

他问~

“你会打包成Bundle吗?”

“啊?我不会。”

“不会学啊,愣着干嘛?”

“噢,抽时间吧。”

于是这篇文章在这个午休期间应运而生。

以下正文:

什么是Bundle文件?

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

Bundle文件的特点?

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

制作Bundle

1.新建一个工程macOS的Bundle项目

iOS Bundle的生成和使用

2.命名

iOS Bundle的生成和使用

3.删除文件夹和info.plist文件

iOS Bundle的生成和使用

4.删除Build Settings里的Packaging的info.plist的文件地址

iOS Bundle的生成和使用

5.设置Base SDK为iOS

iOS Bundle的生成和使用

6.添加要打包的资源文件进到文件夹

iOS Bundle的生成和使用

7.我添加了一张图片

iOS Bundle的生成和使用


8.编译,然后找到下图的按钮打开文件夹

iOS Bundle的生成和使用

9.找到Bundle文件,右键显示包内容,查看是否将资源文件加入其中

iOS Bundle的生成和使用

10.检查无误之后,将Bundle拷贝到iOS项目中

iOS Bundle的生成和使用

11.开始使用

iOS Bundle的生成和使用

这是一种方法,还有其他方法。

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

NSBundle *resourceBundle = [NSBundle bundleWithPath:bundlePath];

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

或者

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

NSString *imgPath= [bundlePath stringByAppendingPathComponent:@"img_collect_success.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]


相关文章:

  • 2022-12-23
  • 2021-06-14
  • 2021-11-12
  • 2022-12-23
  • 2022-12-23
  • 2022-01-04
  • 2022-12-23
  • 2021-07-13
猜你喜欢
  • 2021-09-01
  • 2021-06-13
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案