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

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


01.png
02.png
03.png
4.png
05.png
06.png

解析点:

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

07.png

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


08.png

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


09.png
  1. 若是viewController自带的vc.nib,则使用的时候:


    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];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容