关于ui搭建三种方式的优劣性

今天突然有人问我关于storyboard跟xib还有手写代码的区别,在这里谈下我在开发中的感受。

一、手写代码UI

1、优势

√  适合大型项目大规模使用,利于版本管理、追踪改动以及代码合并;最好的代码重用性

2、遗憾

√  慢,开发周期长,维护代码复杂;自动布局AutoLayout困难,手写约束

二、xib文件组织viewController或者view

1、优势

√  开发速度快;  在版本管理上和纯代码的差异并不是很大,易读易维护

2、遗憾

√  xib中的设置往往并非最终设置,UI设计会被代码所覆盖

(如果选择xib,那么要尽量将xib的工作和代码的工作隔离开来:能够使用xib完成的内容就统一使用xib来做,而不要说三个Label其中两个在xib设置了字体而另一个却在代码中完成。尽量仅保持必要的、较少的IBOutlet和IBAction会是一个好方法。)

三、storyBoard

1、优势

√ 可以看到每个ViewController的布局样式,也可以明确地知道各个ViewController之间的转换关系;代码量少,开发周期短;关键是已经成为新建项目时候的默认配置,代表着苹果以后的方向和重心

2、遗憾

√  很难多人协作;ViewController的重用和自定义的view的处理

在此分享最近一直在用的storyboard,其实跳转相对而言超级方便只要明白UIStoryboardSegue就已经会熟练的使用storyboard了。

-(void)performSegueWithIdentifier:@"addCameraSegue" sender:id  如果我们设置点击UITableViewCell会触发segue,那么performSegueWithIdentifier(sender)方法不需要我们手动实现,其identifier被设置为在StoryBoard中设置的identifier,sender被设置为触发这个segue的UITableViewCell,否则需要手动实现。

-(void)performSegueWithIdentifier:@"addCameraSegue" sender:id-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender是在页面跳转的时候走的方法,在这个方法里面可以获取到目的控制器,往目的控制器传值。

你可能感兴趣的:(关于ui搭建三种方式的优劣性)