Storyboard、Nib文件和代码来实现UI的利与弊

      很清楚,这就是iOS里面两种可视化UI的方法。加上所有用代码来实现UI,总共有三种方法能够来实现。程序员

      咱们先说一下全用代码来作,这个方法属于比较极端的程序员所推崇的,优势和缺点一样明显。工具

      优势是能够实现全部的功能,用Nib文件和Storyboard能够实现的功能用代码都能实现,不能实现的一些功能,用代码也能实现;另外用代码方便多人共同开发项目,版本管理比较方便,Nib文件和Storyboard这点上就是致命伤了(Xcode5以后好了很多),最后一个就是这种开发方法颇有高大上的感受,可让程序员自我迷醉微笑ui

      缺点是代码不够直观,并且冗余很重。直接看代码你很难对一个View立刻有个大致的印象,须要运行起来才能完整的看到全貌;至于代码冗余也很好理解,你看见View初始化以后都是一堆堆的设置frame,各类target-action的设置,也会以为冗余的。编码


      Nib文件是用InterfaceBuild来辅助作可视化的UI设计的文件,若是你用过微软的VisualBasic,VisualC++等等可视化开发语言的话,对这个概念应该不陌生。spa

      用这个来开发UI一样让你欢喜让你忧,欢喜的是简单地UI确实比较方便,用鼠标拖拉一下,再加上一些设置就能够作出来了。忧的是这个功能其实是用xml来存下View里面的内容,Xcode5以前打开文件,不加任何修改都能发现变化了,版本管理时满文件都是红色的,在多人修改到同一个文件时简直就是噩梦,Xcode5以后好了很多,但小组开发时少方便仍然是存在的问题。用Nib文件生成的UI,用代码均可以进行修正,咱们每每会在Nib文件里面设置一部分,而后再代码中修正实现另一部分,这样的编码方法容易起一些冲突,有时会让人很头晕。还有一点,这样生成的内容在不一样的项目中复用是很难实现的。设计


      Storyboard实在iOS5以后出现的概念,2011年的WWDC的Session309《Introducing Interface Builder Storyboarding》里面提出来的。这个东西的出现是为了弥补Nib文件仅仅针对一个View,没有针对总体应用流程的改进,同时它能够进一步节省代码。试用了一下,一个简单的例子,见下图:调试


      我的的感受嘛,怎么说呢,以为一我的开发的简单项目中使用仍是很不错的。应用的流程比较清晰,能够作到一目了然,View的切换是自动的,避免了用代码来作,能够进一步减小开发的工做量。缺点仍是不适合多人共用,一个board多人一块儿维护的情形想一想就以为没那么简单,固然,有看到说应用并不是只有一个board,每人能够用本身的board来开发。我认可,这样作会减小不少麻烦,但仍然感受给版本管理带来了不小的麻烦(退化到极限,不就是Nib文件了么),另外,无论怎么说,代码的复用确实是变得困难了。code

      要说明的是,Storyboard和Nib文件并不是是非此即彼的互斥关系,在用了Storyboard的应用中也能够用Nib文件,这对实现一些复杂的UI是有帮助的。固然,代码必不可少的须要增长一些。xml


      我所从事的开发中,历来没用过纯用代码来实现UI,感受这样作实现/调试/维护都不方便。不少项目因为有历史包袱,目前都是用Nib文件的方法在开发维护,新的应用感受比较小巧,一我的能开发过来的,决定用Storyboard来实现,慢慢逐渐转向用Storyboard来开发。毕竟苹果对于这个工具持续在改进,也是将来力推的一个方向。ci

相关文章
相关标签/搜索