framework--怎么样使用bundle来共享资源

转载自:http://www.jianshu.com/p/ff50bce87f55


1、问题?

iOS的一个限制,framework只能包含头文件和静态库。那么怎么样通过使用bundle整合资源,让其可以随着framework一起发布。

2、解决方法:

2.1、创建一个Bundle
资源都会被添加到bundle中。这将是A工程上的另一个目标。
1)



2)



3)因为要创建一个在iOS上使用的bundle,这与默认的OS X不同。选择RWUIControlsResources目标,然后点击Build Settings栏,搜索base sdk,选择Base SDK这一行,按下delete键,这一步将OS X切换为iOS。


这一步将OS X切换为iOS


4)将工程名称改为A。搜索product name,双击进入编辑模式,将${TARGET_NAME}替换为A。



5)默认情况下,有两种resolutions的图片可以产生一些有趣的现象。例如,当你导入一个retina @2x版本的图片时,普通版的和Retina版的将会合并成一个多resolution的TIFF(标签图像文件格式,Tagged Image File Format)。这不是一件好事。搜索hidpi将COMBINE_HIDPI_IMAGES设置为NO。



6)确保当你编译framework时,bundle也能被编译并将framework作为依赖添加到集体目标中。选中Framework目标,选择Build Phases栏,展开Target Dependencies面板,点击 + 按钮,选择AResources目标将其添加为依赖。



7)在Framework目标的Build Phases中,打开MultiPlatform Build面板,在脚本的最后添加下述代码:

//这条指令将拷贝构建好的bundle到用户的桌面上
# Copy the resources bundle to the user's desktop
ditto "${BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.bundle" \
      "${HOME}/Desktop/${RW_FRAMEWORK_NAME}.bundle"

8)编译framework scheme,你会发现bundle在桌面上出现


选择framework scheme编译

2.2、导入Bundle

为了用这个新的bundle开发,你需要在示例项目中使用它,这意味着你必须既把它作为依赖添加到工程中,同时作为一个对象拷贝到项目中。


添加依赖

2.3、创建一个丝带视图(Ribbon View)
1)从之前下载的压缩文件中将RWRibbon文件夹拖入到B工程下A组中。


选择复制到该文件夹下

2)代码中一个很重要的部分是你怎样引用一张图片。如果你看一下RWRibbonView.m文件中的addRibbonView方法,你将会看到相关的这一行代码:

//Bundle就像一个文件目录,所以引用bundle中的一张图片是非常简单的。
UIImage *image = [UIImage imageNamed:@"A.bundle/RWRibbon"];

3)将图片添加到bundle中


4)导出头文件RWRibbon.h,确保在framework中可以被访问



5)将头文件引用添加到framework的头文件中。打开A.h添加下面这两行:

// RWRibbon
#import < RWUIControls/RWRibbonView.h>

2.4、将丝带添加到示例工程中
1)在B项目中打开RWViewController.m文件,在@interface后的大括号中添加下面的实例变量声明。

RWRibbonView  *_ribbonView;

2)在viewDidLoad:的末尾添加下面的代码来创建一个丝带视图:

// Creates a sample ribbon view
_ribbonView = [[RWRibbonView alloc] initWithFrame:self.ribbonViewContainer.bounds];
[self.ribbonViewContainer addSubview:_ribbonView];
// Need to check that it actually works :)
UIView *sampleView = [[UIView alloc] initWithFrame:_ribbonView.bounds];
sampleView.backgroundColor = [UIColor lightGrayColor];
[_ribbonView addSubview:sampleView];

3)编译并运行B scheme。你将看到新的丝带控件出现在应用的下方。


编译并运行B scheme

结果


文/慧惠(简书作者)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值