有的小姐姐小哥哥比较喜欢用xib,或者当我们的业务状态非常多的时候,可以利用xib+UIStackView来迅速开发,都知道大量的xib会非常的耗性能,但是偶尔一两个也是可以的。
我是一个偏向于代码布局的,灵活性高,易于维护,虽然有时候一些初始化代码及布局代码可能会达到三百多行,但是还是喜欢用代码来布局。
如果我们用组件化开发的话,再组件化中怎么将xib文件转为nib。奉上简便的脚本文件,来解放你的双手!!!

使用流程:
1.将xib文件或包含xib文件的文件夹 以及 nib.sh 放在同一个目录下;
2.cd 到该目录下
3.终端执行命令 bash nib.sh xib文件或文件夹

报错:
xcodebuild’ requires Xcode, but active developer directory ‘/Library/Developer/CommandLineTools’ 。。。

解决该问题只需要设置xcode中的命令行工具:打开Xcode -> 左上角Xcode -> Preference… -> Locations -> Command Line Tools 选择最新即可。

脚本文件地址
脚本代码:

#!/bin/bash# 将xib编译成nib文件
function transitionToNib(){ibtool --errors --warnings --output-format human-readable-text --compile ibtool --errors --warnings --output-format human-readable-text --compile $1 $2}#处理输入的参数 并编译成nib
function handlFile(){ORIGIN=$1echo $1XIBFILE=${ORIGIN##*/}echo "$XIBFILE xib文件"FILENAME="${ORIGIN%.*}"NIBFILEDIR=$FILENAME".nib"NIBFILE=${NIBFILEDIR##*/}echo "$FILENAME file名"echo "$NIBFILE nib文件"transitionToNib $NIBFILE $XIBFILE
}#循环目录,将每个xib编译成nib
function scandir() {local cur_dir parent_dir workdirworkdir=$1cd ${workdir}if [ ${workdir} = "/" ]thencur_dir=""elsecur_dir=$(pwd)fifor dirlist in $(ls ${cur_dir})doif test -d ${dirlist};thencd ${dirlist}scandir ${cur_dir}/${dirlist}cd ..elseecho "${cur_dir}/${dirlist} 子文件"handlFile ${cur_dir}/${dirlist}fidone
}#判断是否有输入参数 需输入一个xib文件 或 一个只包含xib的文件 注意,xib文件名不能为空,否则不会被编译成nib
if [ ! -n "$1" ] ;thenecho "you have not input a xibfile or directory of xibfile!"return
elseecho "the word you input is $1"
fi#判断是文件还是文件夹
if test -d $1
thenecho "you input  a directory"scandir $1exit 1elif test -f $1
thenecho "you input a xibfile "handlFile $1exit 1
elseecho "the Directory isn't exist which you input,pls input a new one!!"exit 1
fi

iOS组件化中xib转nib相关推荐

  1. Category 特性在 iOS 组件化中的应用与管控

    背景 iOS Category功能简介 Category 是 Objective-C 2.0之后添加的语言特性. Category 就是对装饰模式的一种具体实现.它的主要作用是在不改变原有类的前提下, ...

  2. 解读 iOS 组件化与路由的本质

    前言 虽然 iOS 组件化与路由的话题在业界谈了很久,但是貌似很多人都对其有所误解,甚至没搞明白"组件"."模块"."路由"."解 ...

  3. iOS-解读 iOS 组件化与路由的本质

    前言 虽然 iOS 组件化与路由的话题在业界谈了很久,但是貌似很多人都对其有所误解,甚至没搞明白"组件"."模块"."路由"."解 ...

  4. iOS 组件化与路由的本质

    前言 虽然 iOS 组件化与路由的话题在业界谈了很久,但是貌似很多人都对其有所误解,甚至没搞明白"组件"."模块"."路由"."解 ...

  5. iOS组件化开发实践

    目录: 1.组件化需求来源 2.组件化初识 3.组件化必备的工具使用 4.模块拆分 5.组件工程兼容swift环境 6.组件之间的通讯 7.组件化后的资源加载 8.OC工程底层换swift代码 9.总 ...

  6. iOS 组件化的创建 -创建 cocoapods 库

    近期研究一些组件化,看了很多网上资料,都不是写的很清楚,所以就写了这篇文章, 本文参考了 iOS 组件化 CocoaPods 创建私有库 制作 CocoaPod 一.创建组件 1.1 生成HJProg ...

  7. iOS组件化-带你一步步实现项目的组件化

    https://blog.csdn.net/u014205965/article/details/78025799 iOS组件化(上篇)- 拆分基础组件 https://www.jianshu.com ...

  8. android 蘑菇街组件化,4. IOS 组件化(蘑菇街的路由+协议式)

    为了研究组件化,我们主要是讨论 蘑菇街的路由+协议式 和 中间件 讨论第一种方式,并参考 蘑菇街IOS组件化 ,我们来实现一个可以运行的demo,并讨论优缺点. 路由 用MGJRouter 单例,通过 ...

  9. iOS组件化及架构设计

    关于组件化 网上组件化的文章很多.很多文章一提到组件化,就会说解耦,一说到解耦就会说路由或者runtime.好像组件化 == 解耦 == 路由/Runtime,然而这是一个非常错误的观念.持有这一观点 ...

最新文章

  1. 大型网站技术架构 读书笔记
  2. Oracle学习笔记之三,Oracle 11g数据库的启动与关闭
  3. linux启动后分区数据变化,求助!我删除了Linux启动分区
  4. java 打印命令_Java 普通命令行程序main关掉 DEBUG 打印
  5. OSTaskSuspend()——挂起任务
  6. [.NET 三层架构(ADO.NET)+Web Service+多语言]WinForm三层架构重新实现TaskVision,外加WebService提供数据和多语言...
  7. 13-hadoop-入门程序
  8. 实时渲染入门:静态光照和动态光照
  9. 要点初见:双硬盘下的Win10+Ubuntu16.04双系统安装
  10. 这些车企在企业微信里,装上高速的“组织引擎”
  11. Guava学习笔记(转)
  12. 网易自媒体视频,批量修改md5采集下载上传,批量自动去水印加水印软件 今日头条自媒体视频,youtubu...
  13. Linux运维交流学习
  14. 怎么让照片人物嘴巴动起来?这个好用方法你必须知道
  15. inno setup打包脚本总结
  16. 两个无符号数相减 可以得到负数
  17. 一网打尽MWC2019新品手机
  18. Linux下Vim编辑Gcc编译实现局域网聊天系统
  19. 2020-07-28 httprunner+locusts+python接口测试框架
  20. 《达梦数据库运维实战》 发售了

热门文章

  1. LOJ#3084. 「GXOI / GZOI2019」宝牌一大堆(递推)
  2. 对英特尔在嵌入式市场的几个猜想
  3. 经典智力题:飞机加油问题
  4. 我的世界服务器右侧显示的字幕,我的世界怎么用命令方块显示字幕
  5. Android6.0 MTK 需求文档(六)
  6. python守护进程去中断子进程_04 Python并发编程(守护进程,进程锁,进程队列)
  7. 2020年3月蓝桥杯校内模拟赛题解
  8. 中山大学计算机博士_中山大学数据科学与计算机学院2019申请审核制博士招生简章...
  9. eas报错日记_EAS_RPC日志收集方案
  10. 免校准的电量计量芯片_具有免校准和带漏电检测功能的计量芯片HLW8112