废话不多说,直接上图
1、Copy Bundle Resources 中加入相关xib
2、这里是重点,调用的时候不能直接写
[[NSBundle mainBundle] loadNibNamed:@"yourXibName" owner:nil options:nil]
[[NSBundle mainBundle] loadNibNamed:@"yourframework.framework/yourXibName" owner:nil options:nil]
3、编译完成后可以看到在framework目录下生成了对应的nib文件(xib编译之后生成nib,详情自己搜吧)
4、然后在项目配置的时候,需要把framework加入到Copy Bundle Resources 中,这一步也是重点
不过这样会增加整个包的大小
因此个人认为还是使用.a+bundle的形式更为妥当
另外如果在xib中直接加载了图片资源,则需要使用代码进行重新设置,因为无论是framework的形式还是.a+bundle的形式,资源目录都发生了改变,不再是从.app的根目录下去取资源,而是在.app目录下的bundle或者framework目录中取,因此加载资源的方式也需要进行更改
+ (NSString *)pathForResource:(NSString *)name ofType:(NSString *)type { NSBundle *bkBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:YOUR_BUNDLE_NAME ofType:@"bundle"]]; NSString* path = [bkBundle pathForResource:name ofType:type]; return path; }