xib生成nib使用
2018-11-30 本文已影响59人
草原烈鹰
打包静态库时,xib不会被编译成nib,而如果你直接在主项目中使用xib,编译的时候就会把xib编程nib。因此需要我们手动把xib编程nib
有两种方式:
方式一:
使用命令行:ibtool --errors --warnings --output-format human-readable-text --compile /Users/**/Desktop/ViewController.nib /Users/**/Desktop/ViewController.xib
方式二:批量生成(直接在项目中生成,不用脚本)






解析点:
1. 最上面三步创建了一个macOS类型的bundle,选择test1运行,发现只能在mac环境运行
2. 那么需要修改配置,让其在ios环境运行,在base SDK中选择iOS则可以在ios环境跑了
3. 需要把目录里面info.plist文件删除,删后运行报错,此时再把plist对应的路径删除: 把图中路径test1/info.plist删除掉

拖进文件中的xib需勾选这些,然后编译(把原来的生成的test1.bundle删除,重新编译生成)
.bundle里面便有了nib的文件,然后把生成的包含nib的.bundle复制到TestPro目录中,就可以使用了

此时项目中要使用.nib, 写出.nib的使用方法,那么.xib就使用不到了,使用.nib:要用到以下方法,从.bundle中取出并使用

-
若是viewController自带的vc.nib,则使用的时候:
10.png
- view的nib使用:
使用的时候在view中单独写个取出的方法:
+ (instancetype)getView
{
return [[***Manager xibBundle] loadNibNamed:NSStringFromClass([TestView class]) owner:nil options:nil].firstObject;
}
用到的时候
self.testView = [TestView getView];
- cell的.nib使用:
[self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([TestCell class]) bundle:[***Manager xibBundle]] forCellReuseIdentifier:kTestCell];