自从苹果公司发布了iphone6,iphone6 plus以及apple watch后,苹果的开发人员也不得不面对适配不同分辨率的问题了,从前纯代码写ui的是不是到了死路一条的地步呢?究竟哪种方式做ui比较合适?成了许多人不得不面对的问题了,目前主流做ui的方式就是3种,storyboard,xib和纯代码,这3种方式我都粗浅的用过,我就简单的说说自己的个人感受

1.storyboard

用storyboard的好处很明显,各个vc之间的关系一目了然,而且可以通过监视面板直接设置许多视图的外观以及属性,还可以通过添加keypath对运行时的一些状态做设置,如果屏幕够大,还可以通过preview实时查看各个尺寸下约束展现的效果.
但是,storyboard有个非常大的问题,就是vc多的时候,每当storyboard有改动,编译一次就要用非常长的时间,简直无法忍受,更吐血的是,只要你点开storyboard,不管你有没做修改,xcode就认为你有改动,编译的时候就会耗用很长的时间,我估计storyboard这个问题没有解决好的话,很难成为主流的ui设计工具,不过如果只是简单的几个视图跳转,用storyboard出原型那是神速啊.storyboard另外一个比较大的问题就是多人协作的问题.目前还没有什么好的解决办法(有人建议创建多个storyboard文件,那和xib没什么区别了).

2.xib

xib是个元老级的产品,在各个方面相对会比较成熟一点,storyboard可以简单理解为多个xib集合在一起,同样xib可以看做storyboard分解后的单个vc(storyboard是以vc为单位,xib不一定).xib没有了storyboard中文件变大造成编译速度慢的问题,同时也失去全局观察各个vc之间关系的功能.

3.纯代码

网络上很多言论说纯代码写ui已经走到尽头了,这个说法有一点片面,其实用代码创建视图,设置外观,属性等工作用纯代码没有任何问题,和以前一样.唯一的问题就是布局,新尺寸的设备出来后为了适应不同大小的屏幕,不得不采用autolayout自动布局的方案,而sdk自带api来做约束相当的繁琐,虽然他有出了一个简单的布局语法,但是对不了解的人简直就是天书,所以只要能够解决objc自带的约束api繁琐的问题,纯代码写ui对那些键盘控来说还是很有市场的.幸运的是万能的github上已经出现了几个非常优秀的实现自动布局的框架,我目前用masonry,相当不错,所以纯代码写ui加上用第三方类库做布局,基本上和以前没有什么区别,一样可行.

结论

在storyboard没有解决好编译耗时长的问题之前,较大的项目还是先不要用了,不过种种迹象表明苹果公司会往这个方向继续发展,所以静观其变.当然了,出于学习的目的和项目的ui比较轻量的情况,storyboard不失为一个好选择

目前比较推荐的是xib,在快速出界面以及ui微调等方面都非常得心应手

纯代码的一大缺点就是速度较慢,创建ui的过程索然无味.而且对于创建的效果必须编译执行后才能查看,当然了某些geek还是非常推崇这种方式的,那就要看个人了,总之新设备出来之后代码写ui还是能继续生存下去的,不像坊间说的那么危言耸听.

最终对于我个人的结论就是:在现阶段以xib为主,代码为辅是最为合适的一种选择.

原创文章,转载请注明出处,谢谢!