今天突然有人问我关于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是在页面跳转的时候走的方法,在这个方法里面可以获取到目的控制器,往目的控制器传值。