xib 对版本管理是灾难。storyboard 实际上的多个 xib 的集合,所以更容易让多人编辑产生冲突。而虽然它们是 xml 格式,但是冲突解决起来还是不如代码那么容易。
苹果对 xib, storyboard 的设计中带有当前电脑的操作系统版本和 Xcode 版本。所以如果两个协作的开发者电脑操作系统或 Xcode 有不一样的话,每次打开必定会修改这个文件。另外即使操作系统版本和 Xcode 版本一样,有些时候打开看也会造成一些自动的修改。
storyboard 带来的 segue 的概念对于开发来说并不省事,特别是在需要传递参数的时候。如果是用程序内部 trigger 一个 segue,那么需要在另一个回调的地方设置 dest view controller 的参数信息。
我们发现 xib 中设置的颜色值并不精确,RGB 在真机 / 模拟器上常常会有 10 多像素的偏差。
xib 和 storyboard 对继承的支持并不友好。无法做界面的继承。
xib 和 storyboard 对搜索支持并不友好,无法方便地在 Xcode 中查找关键词(但是可以通过写 bash 命令来查找)。
storyboard 对组合支持得不太好,不允许在一个 xib 中附带多个子 view。
xib 和 storyboard 不太方便做界面的模块化管理,比如我们想统一修改界面中所有按钮的字体样式,那么在 xib 和 storyboard 只能一个一个手工修改,而如果是代码编写的,则只需要改一个工厂方法的实现即可。
对于复杂的 App,storyboard 的性能会比较差。
相关文章
- 【古月21讲】ROS入门系列(1)——ROS命令工具的使用及创建工作空间和功能包
- pytest学习和使用23-通俗易懂的聊聊allure常用特性集合及使用方法说明
- PyTorch 之 简介、相关软件框架、基本使用方法、tensor 的几种形状和 autograd 机制
- Linux系统之温度监控工具——lm_sensors的安装和基本使用
- 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_16-抽象方法和抽象类的使用
- android中sqlite数据库的基本使用和添加多张表
- 转:linux下bwa和samtools的安装与使用
- Java学习(十三):抽象类和接口的区别,各自的优缺点
- 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群
- Java学习笔记之三--类和对象以及Setter和Getter方法的使用