xib生成nib使用

打包静态库时,xib不会被编译成nib,而如果你直接在主项目中使用xib,编译的时候就会把xib编程nib。因此需要我们手动把xib编程nib
有两种方式:
方式一:

使用命令行:ibtool --errors --warnings --output-format human-readable-text --compile /Users/**/Desktop/ViewController.nib /Users/**/Desktop/ViewController.xib

方式二:批量生成(直接在项目中生成,不用脚本)


xib生成nib使用_第1张图片
01.png
xib生成nib使用_第2张图片
02.png
xib生成nib使用_第3张图片
03.png
xib生成nib使用_第4张图片
4.png
xib生成nib使用_第5张图片
05.png
xib生成nib使用_第6张图片
06.png

解析点:

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

xib生成nib使用_第7张图片
07.png

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


xib生成nib使用_第8张图片
08.png

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


xib生成nib使用_第9张图片
09.png
  1. 若是viewController自带的vc.nib,则使用的时候:


    xib生成nib使用_第10张图片
    10.png
  2. view的nib使用:
    使用的时候在view中单独写个取出的方法:
+ (instancetype)getView
{
    return [[***Manager xibBundle] loadNibNamed:NSStringFromClass([TestView class]) owner:nil options:nil].firstObject;
}

用到的时候

self.testView = [TestView getView];

  1. cell的.nib使用:
    [self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([TestCell class]) bundle:[***Manager xibBundle]] forCellReuseIdentifier:kTestCell];

你可能感兴趣的:(xib生成nib使用)