红衣五叔亿万先生官方网站,红衣三叔

前言

做iOS开发的童鞋都应有会纠结一个难题,那就是在做开发的时候是行使StoryBoard照旧使用Nibs又或许是Code(纯代码流)呢?小编也更加纠结那个问题,明日碰巧在raywenderlich上边看到了多少个大神之间的撕逼,哦不,研商之后,感觉获得累累,于是就将她们谈论的始末整理翻译了瞬间,如有不当之处,还请多多原谅,原摄像请戳这里

英文:raywenderlich
译文:伯乐在线专栏作者 – 陆熠十四 翻译
链接:http://ios.jobbole.com/88119/

讨论

Ray Wenderlich

Ok!现在大家都在线,谢谢各位的来临,明天我们会有一个谈谈关于iOS开发的钻探,是挑选Storyboards、Nib依旧Code,我们有多个志愿者,Cesare
Rocchi代表的是“Code爱好者”,Tammy Coron 代表的是“Nib爱好者”,Felipe
Laso 马尔斯etti代表的是“StoryBoard爱好者”,大家将从Cesare Rocchi开头

Cesare Rocchi

率先,code是那些清晰直观的,你可以直接望着代码,你不须求开拓愚钝的Nib文件,并且永不深刻钻研然后找出部分复杂因素到底关联了仍旧没有关联,那些都很傻;当你在付出一个大型项目标时候那种措施要命的有用;当我从一个crazy
guy那里接手一个门类,这几个连串是用StoryBoard或然Nibs做的,最终我会用code重写所用的东西,你可以在StoryBoard只怕Nibs设置好所有东西,可是最后你可以用代码重写所有的动静;比如你在一个nib文件之中安装了一个lable,当您运行这一个app的时候那么些lable看起来与你设置的不太一样,那是因为其它一个人在之后添加了一行代码改变了丰硕lable的性格

Tammy Coron

当听到他(Cesare
Rocchi)如此贬低Nib的时候让本身七窍生烟,我当做一个顺序媛有十分短一段时间了,我见过越发多的程序猿喜欢使用code的不二法门来支付的;但就我个人而言,我是一个不胜正视于视觉的人,我欣赏通过可视化的法子来展开编程,所以我采纳使用Nibs;你只怕会说利用StoryBoard可以比采取Nibs看到越多的东西,然而对本人的话,我并不喜欢StoryBoard,因为StoryBoard能做的很有限,越发是当你在写一个大型项目标时候照旧你与任何的人搭档的时候,若是选用StoryBoard你将会把拥有的UI都集中在一个文书之中,那会招致合作变得可怜辛劳,合并上也会有不少的劳累;StoryBoard上还有一个很大的题材即便,它不容许你操作太多的品质,尤其是在分化的View里面使用TableViewCells的时候,你不得以在StoryBoard里面收录它们,你大概可以形成可是会比较费力,而Nib要做起这几个会特其他差不离;并且你不要想去在StoryBoard里自定义Controller只怕是View,无论哪一天想要做到那么些你最好去拔取Nib

对此code,我同意若是利用code要做过多的办事,必须求去精通Nib背后的代码,不过利用Nib你可以高速看到本人对成分操作的机能,如果选用code,你写好所有的因素,设置好它们的品质,再将它们增进到视图里面,你不能不要在运行app之后才可以看到实际的作用,这是那些关键的政工,没有人在意代码到底长什么,他们只会关切app看起来何等,
最好的观赛措施就是应用Nib来做

So,我只怕有点小感动,等我冷静下来我会说得更好,XD

Raywenderlich

那么些科学的意见,现在轮到最终一个人发言了,Felipe该你上了

Felipe Laso Marsetti

So,Cesare你就是个混蛋;苔米并不曾让自己倍感恼火,因为他很推崇可视化,而可视化就是前景,就算code很酷,可是可视化将会是鹏程,不错,Nib或然更为的酷更加的随意,不过以后势必是StoryBoard的大地,它可以让您做到一些Nib与code做不到的事务,当你在集合代码可能统一Nib的时候你依旧会遇上龃龉,每当你触碰Nibs,Xcode就会并非理由的认为你转移了它,所以您要讲述这样的改变,因为Xcode认为它改变了,仅仅因为您看了它一眼

StoryBoard更好,不用再像Nib或然code那样工作,要是您使用code,你需求周转你的app,看布局是或不是创立,然后回来更改布局属性,再运行app来看作用,不断的双重,那样功用特其他低,只怕使用Nib会有所改良,不过当你在做一个大型项目的时候,你会有三四十个ViewController,那样您只怕就会有四五十个Nib文件,那会分外的可恶,因为您要更加小心的做一些改动

不过StoryBoard不仅可以让您避免写一大堆无聊的代码,甚至是防止那几个要在Nib下写的代码,比如利用segue和unwind
segue,你可以透过一名目繁多的delegate方法来传输数据,你可以设置转场动画,你还是能自定义动画

世家都觉得大家只好在一个StoryBoard下边工作,不过事实上我们可以在频频一个StoryBoard上面工作;当我们在支付公司级客户端的时候,大家寻常都是3-5个人的团队,我们会有10个StoryBoard,那很可观,因为您能够将各类模块分开,比如about模块、反馈模块或许社交模块,你可以见见可视化的layout,为了防止别人说StoryBoard变得愈加大,越来越慢,你可以试着打开它,然后,boom~~,你能够了然地驾驭怎么连接着怎样,什么要去何地,你可以命名你的segue,你可以具备许多的自定义,所有的那总体都预示着StoryBoard将会是未来

自然,Nibs和code是很有用的,而且自个儿也提议在须求的时候去行使Nibs和code,可是本身想说在Xcode中使用StoryBoard是很是便利的,那是苹果在用的东西,他们为StoryBoard做了尤其多的行事,它就是前景,并没有丰硕的凭证来注明StroyBoard很慢很臃肿或然其他,没有丰硕强劲的凭据来证实那有的;我强烈指出使用StoryBoard,当需求的时候你可以选拔code恐怕nibs,然则本身指出你尽量避免去拔取,因为StoryBoard才是王道

Raywenderlich

Awsome!分外棒的见解!So,接下去每一个人都有一个时机为和谐的意见进行分辨,那么,Cesare你有啥要说的呢?

Cesare Rocchi

额,首先,假如当您想要合并Nib或许StoryBoard的时候,这几乎就是恶梦,毫无意义,然后code要成功这些是丰裕轻松的,作为一个项目老总,我得以了解地看到明天代码都做了怎么修改,然而像Nib只怕StoryBoard,我无能为力把握它到底做了什么,到底是修补了bug依然促成了某一个功力

还有就是,你在好何时候或许会接纳Xcode的beta版本来进行工作,你驾驭Xcode在保管Nibs只怕StoryBoard上边并从未那么的智能,当自家打开项目的时候,beta版的Xcode修改了少数文件,导致了具备东西都破灭了,那就表示你打开StoryBoard之后怎样都没有了,所以整个项目就全盘崩溃了

其三点就是行使Nibs大概StoryBoard会减低我的工作功用,当自己在coding的时候,我喜欢保持本身的手放在键盘上边,而不用去打开一个nib文件然后去做一些关联,然后又将手放回键盘继续coding,那样会下跌我的工作功效;还有一些要提的就是,不止两回,越发是在开头的时候,我会望着显示器,尝试着找出是哪个人TMD给这几个天性设置了值,什么人安装了x恐怕y,在哪个地方只怕是何许设置的等等,That’s
all!

Raywenderlich

So,Cesare说使用code会让她的工作作用更高,Tammy你有啥要说的啊?

Tammy Coron

额,当你望着nib文件的时候,你并不要求过多的去关切那么多的品质,它们是怎么设置的以及它们如何的涉嫌,当您使用nib工作的时候,你只要求将你的psd文件处理未来放到nib文件之中,那样您一贯就可以看出效果,然后您再去关联代码,我想说的是接纳nib一切都分外的高效

自我得以在app已毕未来深刻到framework里面,在老大简单的年月里面,在那之中没有代码,唯有可视化的因素,那样就可以高速的深刻到screen里,去看您的app是什么样连接的,然后再去处理本人的代码;可是一旦您把全体都用代码来做将会那几个的累赘,要去设置如此那样的性质,oh
my
god,大约无聊死了,根本就是在浪费时间;我看不惯使用StoryBoard,使用StoryBoard的人就如僵尸一样,一个big
boy不该去接纳StoryBoard,额,反正自个儿就是不希罕XD

Raywenderlich

So,Felipe你是此处最青春的积极分子,你也万分欣赏僵尸,你有怎么着看法?

Felipe Laso Marsetti

额,我就是一个僵尸StoryBoard用户,我强烈提出使用StoryBoard,code是万分有必不可少的,有时候你只好去写一些代码来形成那多少个可视化完成不了的干活,比如自定义UI,不过那一个都不是常用的,大多数时候利用StoryBoard就足以满意需要了;使用StoryBoard你可以丰盛便于的去设置成分属性,而不用去理会背后繁琐的代码;那所有的全套都代表StoryBoard是鹏程,那是苹果在用的东西

说到底本身想说,越少的代码就意味着越少的机会将bug引入到你的app里面,就接近有500行自定义UI的代码,你可以将它们收缩到100行,那样你就可以幸免掉400行并未须要的代码,那样可以减弱bug,而且这样越发不难的去敬重您的代码,假诺您是单独开发,那么使用code只怕对你影响不大,可是只要您从别人那里接手项目,你就不得不深切商量那几个代码到底做了何等,是何许设置view的,什么继承了什么,以及在nib里面有哪些,你依旧无法动用nib去创建一个拥有static
prototype
cells的tableview,你不大概不去创立一个tableview的子类,新建.h、.m、以及nib文件,然后再去创设cell的子类,再新建.h、.m、以及nib文件,然后那几个cells在tableview当中是独自的,那样你就只好去新建一个又一个的cell;不过在StroyBoard里面,只须求一个tableview,20个cells,然后boom~~,太卓绝了,节省时间,让客户端更简约,更少的bug,而且一切都是在可视化下形成的,你不用去不停的stop、run、stop、run,然后去看你的nib文件以及你的代码,僵尸赢了

Raywenderlich

科学的实证,有一点我不止听到的就是,使用可视化的User Interface
Designer,你能够避免更多的代码,可以削减bug,你们怎么对待那个理念?

Cesare Rocchi

额,在autolayout出现以前我会同意那么些看法,若是让自个儿对Interface
Builder举办打分(10分制),在过去我会给6分,当autolayout出现之后就唯有3分了,我越发恐惧在Xcode4.6上面进行工作,autolayout尝试着将兼具的事物混合在共同,造成的状态就是您在界面上边不是问题,不过在日常境况下那不是你想要的,你可能是想要让您的视图更小或许是任何;我只得认同autolayout在Xcode5之后有所革新,但本身对此并不是很感兴趣

Raywenderlich

Tammy,Cesare很反感autolayout,你有啥样想说的吧?

Tammy Coron

自身同一也不是autolayout的狂热听众,我会尽量的将autolayout关闭掉,我在局地类型方面用过autolayout,但本身对autolayout提不起兴趣,你如故可以行使Nib而不去行使autolayout,所以自个儿觉得她的论证是低效的,抱歉XD

Raywenderlich

那么Felipe你是怎么对待autolayout的吧?

Felipe Laso Marsetti

甭管你喜不喜欢,autolayout会始终存在着,大家将会有两样尺寸的设施亟需去适配,三星平板mini、黑莓4、4s、GALAXY Tabretina,autolayout可以扶助大家去落成这几个适配,Nin与StoryBoard都得以让您可视化的去选拔autolayout,你可以充足直观的在屏幕上展开布局,但是一旦去行使code,那将会是一件越发麻烦的事体

行使StoryBoard在debug的时候你可以十分直观的见到,在Xcode5上,你可以预览自身的布局,一旦您转移布局约束,改变设备的尺码,你可以立时就看出结果,即使您使用code,你就只可以debug、run、debug、run,非凡的费劲;就个人而言,我也不是不行的喜欢autolayout,即使在Xcode5与iOS7事后有所改革,但照旧不是很好用,这几个我们鞭长莫及,不过无论怎么样,使用Interface
Builder会好过使用code

Raywenderlich

OK!不错的实证,接下去会频频举行半个钟头的议论,Cesare从您起来

Cesare Rocchi

code是更加清晰直观的,你能够写完事后随即运行,然后得出运行结果,你不要求长远到6个不等的质量编辑器当中,来搞精晓这一个变量属性等等是如何被安装的

最终一点本身想要说的是,Interface
Builder背后的视角是非凡不易的,那几个看法是想要让设计师运用来设计UI,不管是Nibs依然StoryBoard都会让你直观的收看您的app长什么体统,似乎在有些时候,你不必要有一个填写着多少的tableview,作为一个设计师,根本就不会必要一个填写着真正数据的tableview,设计师只想要知道app看起来何等,那不只是一个给设计师的工具,越来越多的是给那个不想写太多代码的coder,That’s
all

Raywenderlich

OK!And Tammy?

Tammy Coron

总的来说,我觉着Nibs是最好的方案,越发是对于有创造力的人,知道Nibs背后的代码原理是必不可少的,不过你为啥要去浪费时间去跟代码较劲,Nibs极度的强劲;至于Story
Board,我无能为力像对待VB那样对待它,它就像是僵尸一样(只怕是异类的情趣)(苔米前边说了一个僵尸吃大脑的笑话,听得不是很懂就没翻译了)

Raywenderlich

Awsome!Felipe?

Felipe Laso Marsetti

额,StoryBoard就是未来,就好像block,似乎ARC,似乎一代又一时的Xcode与iOS一样,苹果现在把精力都位居了StoryBoard上边,他们从没在Nibs上边更新太多的东西,他们没有再加新功用进入,你可以坚持不渝使用Nibs只怕是code,但是选拔StoryBoard你可以节省大量的光阴,你可以在StoryBoard上做出很是复杂的UI,segues、unwind
segues、custom
segues,你仍能够让StoryBoard与Nibs和code一起工作,更少的bug,你应该去品味一下

唯独你们很多少人如故在利用code和Nibs,因为你们很执着,你们喜欢老的措施,害怕改变,说实话,我在常常工作当中总是在行使StoryBoard,大家在大型的协作项目中动用它,它总是最趁手的工具

在大部意况下,就我的阅历而言,我恐怕是一个年轻的僵尸,StoryBoard就是自家的工具,StoryBoard可以形成的事你是足以用Nibs和code做到,可是切记,这是在苹果在WWDC上边提议来的东西,把StoryBoard和Nibs混合起来会工作的很好,那就是苹果在做的政工,StoryBoard就是最好的工具,所以,请别阻止你自个儿去品味这一项美好的新技巧,你只怕仅仅只是害怕做出改变,你只要求花一点纤维时间,你就会感受到StoryBoard的光明之处

Raywenderlich

Awsome!感激各位的演说,那么各位有何难点想问的呢?

Matthijs Hollemans

如若你把拥有的事物都置身StoryBoard里面,你就要求一遍性的弄精通这一大堆的事物,我认为像Nibs那么被分开会更好,允许你使用segue来连接其余事物,你应当每一次只处理一个显示屏,那样更包容你的Xcode窗口大小,可是StoryBoard占用了太大的长空

司机

大家都晓得使用StoryBoard可以分外不难的做出一个简便的采取,在AppStore当中80%的拔取都是属于不难利用,有无数的开发者都是业余的,包罗自家也是,我只是想出了老大好的idea,但不自然要做出格外棒的app,我想StoryBoard就是为这一个人准备的

Chris Wagner

那是很好的一些

Tammy Coron

您可以唯有是nibs来打造一个StoryBoard,似乎您如何收拾本人的项目一律,但是我无能为力想像本人力所能及像使用Nibs这样去行使StoryBoard,说实话其实自身并不曾怎么利用过StoryBoard,所以我对此StoryBoard的一大半眼光都很牵强XD

Matthijs Hollemans

自身一样也是一个珍爱视觉的人,同样我也喜好在可视化的角度去办事,Xcode可以变得比现行愈来愈的可视化,不仅仅是在组织Nibs和StoryBoard上边,Xcode还足以可视化的做过多的作业,举个栗子,可视化的操控UI成分,我更爱好在Nibs下做那个工作,我不认为这种措施(使用Nibs)会被淡化,因为自己认为苹果并从未花太多的遐思在祥和的开发工具上,它可能只给了支付要求使用的最少效用,越发在与别的的IDE相比起来的时候,我期望Xcode在将来会变得越发的可视化

Felipe Laso Marsetti

等一下!你甚至说苹果没有花心绪在开发工具上?╰(‵□′)╯

Matthijs Hollemans

额,确实,这一块对他们而言并不是很重大,他们即便给了开发者appstore,然而一旦她们真正很依赖这一块,他们应有会给大家越多更管用的工具

Felipe Laso Marsetti

那是一个值得切磋的地点,焦点的难点是,不管你喜不喜欢,autolayout与StoryBoard都会不断存在,前年WWDC,苹果发表iOS8,大家将会看到苹果在StoryBoard以及Interface
Builder上边做的行事,可视化将会变得更其的强大,有一点自个儿索要考虑的就是是还是不是要在大型项目中拔取选择Nibs,StoryBoard是以ViewController为底蕴元素的,而Nibs是以View为根基成分的,一个nib就是一个view,那样在开首利用的时候会有点不适应,因为你想要成立一个自定义的view,不过你又不可见在直接在StoryBoard里面完毕

其它关于苹果专注于appstore等题材,那些是事实,可是切记,苹果也确定了全部UI、开发了StoryBoard、Interface
Builder,他们创造这一百分之百生态链;其余关于StoryBoard,你可以用来成立非凡简单的app,境遇复杂的app,你大概会去接纳Nibs,我认为那是错误的,你依旧会在联合的时候蒙受冲突;我想说的是,尝试一下,假设你要求帮衬,来我这边,你精晓在何地可以找到本身;使用StoryBoard,你实在可以做出相当复杂的体系,品质难题向来无需去担心,在现行的5与5s地点就愈加没有须求去担心这么些题材了

Tammy Coron

StoryBoard让自个儿倍感劳碌的是,你不得不在友好的app上面创造自定义views,为何自个儿要浪费时间去行使StoryBoard,我用Nibs就足以完全搞定了

Felipe Laso Marsetti

因为StoryBoard可以更好的管制你的视图,当用户在app里进入视图与重临视图,你的控制器就是一个scene,所以你可以进一步可视化的待遇那个,你可以知晓的知晓自身会被带到那里去,自定义的view是单独的一部分,你可以行使一个nib创立一个自定义的view,然后重用分外频仍,同样要切记,StoryBoard允许你重用你的控制器而不用在StoryBoard里面重复的去创立那些,你照旧足以应用code来创设,你不应当被限制到此地面去,当您结合nibs去行使StoryBoard的时候会越来越的精粹

Tammy Coron

自个儿也足以透过看着品种的导航部分来保管本身的类型,这是自己的率先个视图,这是本人的第三个视图,等等,我急需找到一个很好的理由让本身去选拔StoryBoard,我同意关于StoryBoard就是鹏程的理念,不管大家喜不喜欢,autolayout就是将来的样子,不过本人真的很难喜欢上StoryBoard

Felipe Laso Marsetti

那里有一个很好的例子,我二零一八年接替了一个体系,包罗了五六十个ViewController,并且有一大堆的nibs,在本人初叶进献代码此前我不得不去深切内部去琢磨那几个事物,因为那么些项目不是自个儿写的,这些连串曾经做了1-2年了,在刚初阶的多少个月我完全迷失在这几个项目里面,我只得去搞领会那些nib文件之间的涉及,那实在是丰裕辛勤

只是倘使我有一个StoryBoard,那么整个都将会清晰明了,那会节省不可计数的日子;所以您应该至少使用StoryBoard来创制app的布局,然后再去具体的创制一些自定义的酷炫UI,采纳专断一种你喜欢的章程;当您接手一个大型项目标时候StoryBoard确实会帮你大忙

红衣三伯

我参加的花色所有百万行的代码,几百个视图,我不驾驭大家是或不是须求去行使StoryBoard,不过我会去尝试一下,你说的很科学

Cesare Rocchi

额,我一度有两三年从未去做大型项目了,当我仍旧记得那时候的惨痛,比如去处理千头万绪的结构体,纵然完全采取code来做的类型,要去处理那样那样的结构体也是一件格外劳累的作业,其实我也一律是一个依靠于视觉的人,不过自身并不想在Xcode上面以可视化的方式来做项目,我更爱好在PhotoShop恐怕Sketch上边去做那一个工作,做一个好好的coder,你必须要明白种种东西,那是一个view那是一个button,那一个是否尤其的灵敏等等,那就是干什么自个儿打开Xcode的时候,我盼望我的率先个视图是一个空手的模版

在自我的上一个门类当中,我在一个很小的片段应用了NavigationController,可是我添加的是自我自定义的一个NavigationController,那是一个自定义度很高的一个app,在那几个类型里面,我完全看不出哪个地方可以使用StoryBoard,我都是用代码把全体搞定,分外的简约,而且可以很好的录取它们,我做的都是自定义度很高的app,唯一一个利用到的视图模板就唯有tableview

红衣公公

在自身的经历看来,客户平常会给自家Photoshop文件,告诉自身那就是app要看起来的样子,然后您伊始写代码,大概还有其它的不二法门,不过本人觉得写代码是一种轻松的形式

Felipe Laso Marsetti

从自己的经验不能知晓在客户端合营开发的时候会暴发什么,然则你获取一个Photoshop文件,你收获一个急需文档,然后对您说这就是app要看起来的规范,然后视图A到视图B是怎么样的,视图B到视图C又是怎么着的,把这一个做出来,告诉你定期,然后拜拜

额,你采用code恐怕Nibs来做会很酷,可是你可以利用StoryBoard来做这几个东西,就到底非常复杂的UI也得以落成;在自个儿的营业所里面,经常会有自定义UI的须要,大家只怕须要运用分外多的工具,包含code甚至是PaintCode,以及任何可以生成可视化的UI的工具,Nibs只怕是StoryBoard,可以使用StroyBoard我会非常的高兴,能够观望本人行使了StoryBoard完成了一个有一个的任务

Brian Moakley

我们啄磨了autolayout,探究了StoryBoard,并且现在以为它们就是鹏程,不过,一年过后,大家可能又会说其余的事物是前景,所以,大家理应重新考虑大家的app到底是哪些运行的,知道这几个新技巧确实很科学,可以增强我们的工作效用,可是本身想,通晓如何利用code来成功具有业务是很精明的

Felipe Laso Marsetti

iOS7给了豪门各种各种的空子去品尝StoryBoard,甚至是Nibs,如若你拒绝利用StoryBoard,只怕因为您现在会利用一种截然差异于与往常的章程来创建app;既然您现在有一个空子来解脱原来那么麻烦的开支进度还要尝试新的工具以及接纳iOS7带来的全新UI,为何不试一下呢?

红衣公公

一个很好的品尝StoryBoard的说辞就是接纳StoryBoard可以动态调节尺寸来适应不相同的装备,而autolayout将会是最好的搞定方案

Cesare Rocchi

本人并不欣赏StoryBoard可能是Nibs,可是我不得不去理解它们,尤其是我在教学的时候,不管是教autolayout依旧Nibs,我都会指出您去读书怎么接纳代码来形成这一切,Nibs只怕是StoryBoard做了成百上千的劳作,你相信着那一个工具,不过却不驾驭它们背后的代码原理是何许,它们在悄悄做了哪些事情,这很糟糕;要是你想要成为一名专业的iOS开发者,我想你最好领悟各类各个的开发方法,无论是StoryBoard、Nibs照旧code

Felipe Laso Marsetti

此间有一个很好的事例来证实清楚code的章程很紧要,有那个人平常会问一些难点就是干什么自身的视图不能切换、为何dataSource不起成效等等,知道怎么着行使code会很好的帮带您解决那一个难点,一旦你理解如何使用code,那您使用StoryBoard或许是Nibs将会是如虎添翼,知道code确实卓殊的主要

Matthijs Hollemans

在Nibs或然是StoryBoard中选择autolayout是至极好掌握的,使用code来写约束很简短,但是大多数时候都没有意思,可是如若你在Interface
Builder里面做那么些,它会报告您如何的牢笼是有含义的,它会告知你哪儿应该加约束,哪个地方不该加;在Nibs恐怕StoryBoard里面做这么些要比选拔code更好

Felipe Laso Marsetti

略知一二code确实很有须要,一大半人在做iOS开发的时候不清楚语言背后的有些法则,那只怕会促成一部分荒唐,或是内存败露等等,同样的情形也会在采取StoryBoard或然是Nibs的时候暴发,纵然使用那一个工具开发起来会丰盛的便利,可是借使你不了然背后的代码原理,你恐怕会在debug的时候蒙受困难

Raywenderlich

那么接下去是投票环节了,Nibs、StoryBoard、code,你会挑选哪一个?

Brian Moakley

StoryBoard

Cesare Rocchi

Code

Matthijs Hollemans

StoryBoard

红衣小叔

StoryBoard

Felipe Laso Marsetti

从不须要问我

Chris Wagner

StoryBoard

Raywenderlich

我也同样是StoryBoard

Tammy Coron

本人TMD要说StoryBoard吗?那样我不是很搞笑(其余人大笑);额,我那个喜爱Nibs,所以我会选拔Nibs,可是只要要我在Nibs和code间做一个挑选,我会采用code,因为code可以做其余业务

Raywenderlich

OK!看来各位大多数都是挑选了StoryBoard,╮(╯▽╰)╭

前言

总结

就作者个人而言,二种艺术本身都尝试过,个人更偏爱选择code,当然按照不一致的场景我会结合各自的独到之处进行支付;如上所述,StoryBoard是鹏程,就算还有不够完善的地点,不过相信苹果会将其做的愈加好,
StoryBorad也会日益突显出它的魔力

做iOS开发的童鞋都应该会纠结一个题材,那就是在做开发的时候是行使StoryBoard依然选拔Nibs又只怕是Code(纯代码流)呢?小编也充裕纠结这几个题材,后天碰巧在raywenderlich上边看到了多少个大神之间的撕逼,哦不,研商之后,感觉获得广大,于是就将她们谈谈的剧情整理翻译了弹指间,如有不当之处,还请多多包含,原视频请戳这里
http://t.cn/zRAb4NF

展开阅读

代码手写UI,xib和StoryBoard间的博弈,以及Interface
Builder的有的小技巧

讨论

Ray Wenderlich

Ok!现在我们都在线,感激各位的赶来,前日大家会有一个谈论关于iOS开发的议论,是接纳Storyboards、Nib如故Code,我们有多个志愿者,Cesare
Rocchi代表的是“Code爱好者”,苔米 Coron 代表的是“Nib爱好者”,Felipe
Laso 马尔斯etti代表的是“StoryBoard爱好者”,大家将从Cesare Rocchi初步

Cesare Rocchi

第一,code是更加清晰直观的,你可以一贯看着代码,你不必要开拓拙笨的Nib文件,并且永不深远研究然后找出有些复杂因素到底关联了大概没有关联,这么些都很傻;当您在付出一个大型项目标时候那种艺术分外的有用;当自个儿从一个crazy
guy那里接手一个项目,那个连串是用StoryBoard或然Nibs做的,最终我会用code重写所用的东西,你可以在StoryBoard可能Nibs设置好所有东西,可是最终你可以用代码重写所有的情事;比如您在一个nib文件之中安装了一个lable,当您运行这几个app的时候这么些lable看起来与你设置的不太相同,那是因为其它一个人在今后添加了一条龙代码改变了那么些lable的属性

Tammy Coron

当听见他(Cesare
Rocchi)如此贬低Nib的时候让自家雷霆大发,我作为一个先后媛有十分短一段时间了,我见过那多少个多的程序猿喜欢使用code的不二法门来支付的;但就本人个人而言,我是一个不胜倚重于视觉的人,我欢快通过可视化的法子来拓展编程,所以我拔取使用Nibs;你可能会说利用StoryBoard可以比选择Nibs看到越多的东西,不过对自我的话,我并不欣赏StoryBoard,因为StoryBoard能做的很单薄,更加是当您在写一个大型项目的时候依旧你与任何的人搭档的时候,假使选用StoryBoard你将会把拥有的UI都集中在一个文书之中,这会造成合营变得可怜劳累,合并上也会有很多的分神;StoryBoard上还有一个很大的标题就是,它不容许你操作太多的性质,更加是在不一样的View里面使用TableViewCells的时候,你不得以在StoryBoard里面收录它们,你或然可以完毕可是会比较费心,而Nib要做起那些会尤其的简便;并且你不用想去在StoryBoard里自定义Controller恐怕是View,无论什么日期想要做到那一个你最好去选用Nib
对此code,我同意如若使用code要做过多的工作,必需求去了解Nib背后的代码,不过利用Nib你可以神速看到本身对成分操作的作用,即便采纳code,你写好所有的要素,设置好它们的性质,再将它们增进到视图里面,你不可以不要在运行app之后才可以见到实际的职能,那是分外紧要的工作,没有人在意代码到底长什么,他们只会关心app看起来何等,
最好的考察措施就是采纳Nib来做
So,我或然有点小感动,等自身冷静下来我会说得更好,XD

Raywenderlich

至极不利的眼光,现在轮到最后一个人发言了,Felipe该你上了

Felipe Laso Marsetti

So,Cesare你就是个混蛋;苔米并从未让自个儿倍感恼火,因为他很看重可视化,而可视化就是前景,固然code很酷,不过可视化将会是鹏程,不错,Nib可能更为的酷尤其的随意,但是未来必定是StoryBoard的五洲,它可以让您完了一些Nib与code做不到的事务,当你在联合代码或许联合Nib的时候你照样会赶上冲突,每当你触碰Nibs,Xcode就会毫不理由的以为你转移了它,所以您要描述那样的变更,因为Xcode认为它改变了,仅仅因为您看了它一眼
StoryBoard更好,不用再像Nib大概code这样工作,要是您使用code,你需求周转你的app,看布局是不是站得住,然后回到更改布局属性,再运行app来看效果,不断的双重,那样功效特其他低,大概使用Nib会有所改进,不过当你在做一个大型项目的时候,你会有三四十个ViewController,这样您只怕就会有四五十个Nib文件,那会特其他可恶,因为你要这个小心的做一些改动
不过StoryBoard不仅可以让您幸免写一大堆无聊的代码,甚至是幸免那个要在Nib下写的代码,比如拔取segue和unwind
segue,你能够通过一八种的delegate方法来传输数据,你可以设置转场动画,你甚至可以自定义动画
大家都以为我们不得不在一个StoryBoard上面工作,但是实际上大家得以在不停一个StoryBoard上边工作;当大家在开发集团级客户端的时候,大家常常都是3-5个人的公司,大家会有10个StoryBoard,那很美好,因为你可以将依次模块分开,比如about模块、反馈模块或然社交模块,你能够见到可视化的layout,为了幸免别人说StoryBoard变得进一步大,越来越慢,你可以试着打开它,然后,boom~~,你能够知道地通晓如何连接着什么,什么要去哪儿,你可以命名你的segue,你可以拥有不少的自定义,所有的这一切都预示着StoryBoard将会是前景
理所当然,Nibs和code是很有用的,而且本身也指出在须要的时候去行使Nibs和code,不过本身想说在Xcode中利用StoryBoard是老大便利的,那是苹果在用的东西,他们为StoryBoard做了非常多的工作,它就是前景,并没有充分的凭证来证实StroyBoard很慢很臃肿大概其他,没有丰裕强大的凭据来验证这一部分;我强烈提议使用StoryBoard,当须要的时候你可以使用code或许nibs,不过本身提议您尽量幸免去行使,因为StoryBoard才是王道

Raywenderlich

Awsome!卓殊棒的见解!So,接下去每种人都有一个机会为协调的意见展开辩解,那么,Cesare你有何要说的吧?

Cesare Rocchi

额,首先,若是当你想要合并Nib只怕StoryBoard的时候,那大约就是恶梦,毫无意义,然后code要到位那几个是格外轻松的,作为一个项目总监,我得以知晓地观看前几日代码都做了怎么着修改,可是像Nib或许StoryBoard,我一筹莫展把握它到底做了怎么,到底是修补了bug依然促成了某一个职能
还有就是,你在少数时候可能会利用Xcode的beta版本来进行工作,你知道Xcode在管制Nibs或许StoryBoard上边并从未那么的智能,当我打开项目标时候,beta版的Xcode修改了一点文件,导致了所有东西都冰释了,那就代表你打开StoryBoard之后如何都不曾了,所以任何项目就完全崩溃了
其三点就是利用Nibs只怕StoryBoard会减低我的工作效能,当自身在coding的时候,我喜爱保持自己的手放在键盘上面,而不用去打开一个nib文件然后去做一些事关,然后又将手放回键盘继续coding,那样会下跌我的工作效用;还有一些要提的就是,不止四回,更加是在伊始的时候,我会看着显示器,尝试着找出是什么人TMD给这一个个性设置了值,哪个人安装了x可能y,在何地或许是怎么样设置的等等,That’s
all!

Raywenderlich

So,Cesare说使用code会让他的工作作用更高,Tammy你有怎么样要说的啊?

Tammy Coron

额,当你望着nib文件的时候,你并不要求过多的去关怀那么多的性情,它们是怎么设置的以及它们如何的关系,当您选择nib工作的时候,你只须求将你的psd文件处理未来放到nib文件之中,那样您一贯就足以见到效果,然后你再去关联代码,我想说的是利用nib一切都不行的敏捷
本身得以在app完毕未来深远到framework里面,在丰裕不难的年华里面,在那中间没有代码,唯有可视化的成分,那样就足以快捷的中肯到screen里,去看你的app是哪些连接的,然后再去处理自个儿的代码;但是若是你把全体都用代码来做将会要命的累赘,要去设置这么这样的质量,oh
my
god,大约无聊死了,根本就是在浪费时间;我看不惯使用StoryBoard,使用StoryBoard的人就像僵尸一样,一个big
boy不应该去选用StoryBoard,额,反正我就是不希罕XD

Raywenderlich

So,Felipe你是此处最青春的分子,你也非凡喜爱僵尸,你有何样观点?

Felipe Laso Marsetti

额,我就是一个僵尸StoryBoard用户,我强烈提议使用StoryBoard,code是老大有须求的,有时候你不得不去写一些代码来形成那一个可视化达成不了的办事,比如自定义UI,可是那些都不是常用的,一大半时候使用StoryBoard就可以知足急需了;使用StoryBoard你可以丰盛有利于的去设置成分属性,而不用去理会背后繁琐的代码;这所有的所有都意味StoryBoard是以后,那是苹果在用的事物
末段自个儿想说,越少的代码就象征越少的机遇将bug引入到你的app里面,就恍如有500行自定义UI的代码,你可以将它们减弱到100行,这样你就可防止止掉400行并未须求的代码,那样可以减去bug,而且这样越发不难的去爱慕您的代码,假如您是单身开发,那么使用code只怕对你影响不大,然则若是您从旁人那里接手项目,你就只能深切琢磨这一个代码到底做了什么,是何许设置view的,什么继承了怎么着,以及在nib里面有啥样,你居然不能采纳nib去成立一个具有static
prototype
cells的tableview,你无法不去创立一个tableview的子类,新建.h、.m、以及nib文件,然后再去成立cell的子类,再新建.h、.m、以及nib文件,然后那一个cells在tableview当中是独立的,那样你就不得不去新建一个又一个的cell;但是在StroyBoard里面,只须求一个tableview,20个cells,然后boom~~,太非常满意了,节省时间,让客户端更简便易行,更少的bug,而且一切都是在可视化下做到的,你不用去不停的stop、run、stop、run,然后去看您的nib文件以及你的代码,僵尸赢了

Raywenderlich

毋庸置疑的论证,有一点我不止听到的就是,使用可视化的User Interface
Designer,你可以幸免更加多的代码,能够缩短bug,你们怎么对待这些意见?

Cesare Rocchi

额,在autolayout出现从前我会同意那么些视角,即便让自家对Interface
Builder举办打分(10分制),在过去我会给6分,当autolayout出现未来就只有3分了,我专门恐怖在Xcode4.6上边举办工作,autolayout尝试着将具有的事物混合在一块,造成的情事就是你在界面上边不是问题,然则在平日景况下那不是你想要的,你或者是想要让您的视图更小大概是任何;我不得不认可autolayout在Xcode5之后有所改良,但自个儿对此并不是很感兴趣

Raywenderlich

苔米,Cesare很反感autolayout,你有哪些想说的啊?

Tammy Coron

自家一样也不是autolayout的狂热听众,我会尽量的将autolayout关闭掉,我在一些档次方面用过autolayout,但自个儿对autolayout提不起兴趣,你依然可以使用Nib而不去拔取autolayout,所以我以为他的论据是不行的,抱歉XD

Raywenderlich

那么Felipe你是怎么看待autolayout的呢?

Felipe Laso Marsetti

不论是你喜不喜欢,autolayout会始终存在着,大家将会有例外尺寸的装备亟需去适配,三星GALAXY Tabmini、三星4、4s、平板电脑retina,autolayout可以辅助大家去已毕这么些适配,Nin与StoryBoard都可以让您可视化的去行使autolayout,你可以极度直观的在显示器上展开布局,不过只要去行使code,那将会是一件极度麻烦的业务
应用StoryBoard在debug的时候你可以充足直观的看出,在Xcode5上,你可以预览本人的布局,一旦您改变布局约束,改变设备的尺码,你可以即时就看看结果,若是你使用code,你就只可以debug、run、debug、run,非凡的分神;就个人而言,我也不是相当的喜欢autolayout,纵然在Xcode5与iOS7之后有所改革,但依然不是很好用,这几个大家无能为力,可是无论怎么着,使用Interface
Builder会好过使用code

Raywenderlich

OK!不错的论证,接下去会持续开展半个小时的商量,Cesare从您从头

Cesare Rocchi

code是老大清晰直观的,你可以写完将来马上运行,然后得出运行结果,你不须要深远到6个例外的质量编辑器当中,来搞通晓那几个变量属性等等是怎么着被安装的
说到底一点我想要说的是,Interface
Builder背后的见解是可怜正确的,这一个看法是想要让设计师选择来设计UI,不管是Nibs仍然StoryBoard都会让您直观的见到你的app长什么样子,似乎在有点时候,你不要求有一个填写着数量的tableview,作为一个设计师,根本就不会要求一个填写着真实数据的tableview,设计师只想要知道app看起来何等,那不仅仅是一个给设计师的工具,更加多的是给那么些不想写太多代码的coder,That’s
all

Raywenderlich

OK!And Tammy?

Tammy Coron

因此看来,我觉着Nibs是最好的方案,尤其是对于有成立力的人,知道Nibs背后的代码原理是必要的,可是你干什么要去浪费时间去跟代码较劲,Nibs非凡的有力;至于Story
Board,我不能像对待VB这样对待它,它如同僵尸一样(只怕是异类的情致)(Tammy前面说了一个僵尸吃大脑的嘲笑,听得不是很懂就没翻译了)

Raywenderlich

Awsome!Felipe?

Felipe Laso Marsetti

额,StoryBoard就是前景,似乎block,似乎ARC,就像一代又一时的Xcode与iOS一样,苹果现在把精力都坐落了StoryBoard上边,他们平昔不在Nibs上边更新太多的东西,他们从没再加新效率进入,你可以持之以恒选取Nibs可能是code,不过利用StoryBoard你可以节约大量的岁月,你可以在StoryBoard上做出格外复杂的UI,segues、unwind
segues、custom
segues,你居然足以让StoryBoard与Nibs和code一起坐班,更少的bug,你应有去尝尝一下
而是你们很三个人如故在应用code和Nibs,因为你们很僵硬,你们喜欢老的不二法门,害怕改变,说实话,我在平日工作当中总是在行使StoryBoard,大家在大型的合营项目中动用它,它连接最趁手的工具
在半数以上动静下,就自我的经历而言,我可能是一个年青的僵尸,StoryBoard就是自个儿的工具,StoryBoard可以完结的事您是足以用Nibs和code做到,可是切记,那是在苹果在WWDC上边提议来的东西,把StoryBoard和Nibs混合起来会做事的很好,那就是苹果在做的事情,StoryBoard就是最好的工具,所以,请别阻止你自身去尝试这一项美好的新技巧,你只怕仅仅只是害怕做出改变,你只需求花一点很小时间,你就会感受到StoryBoard的美好之处

Raywenderlich

Awsome!感激各位的解说,那么各位有哪些难点想问的吧?

Matthijs Hollemans

如果你把具备的东西都位居StoryBoard里面,你就必要一遍性的弄明白这一大堆的事物,我以为像Nibs那么被划分会更好,允许你使用segue来连接其余事物,你应当每一遍只处理一个屏幕,这样更包容你的Xcode窗口大小,可是StoryBoard占用了太大的空中

司机

俺们都掌握使用StoryBoard可以十分简单的做出一个简短的使用,在AppStore当中80%的应用都是属于简单利用,有成百上千的开发者都是业余的,包罗自我也是,我只是想出了卓殊好的idea,但不自然要做出充足棒的app,我想StoryBoard就是为那么些人准备的
Chris Wagner

那是很好的少数

Tammy Coron

您可以单独是nibs来创设一个StoryBoard,如同您什么收拾自个儿的档次雷同,不过自身不可以想像本人力所能及像使用Nibs那样去行使StoryBoard,说实话其实我并从未怎么选拔过StoryBoard,所以自个儿对此StoryBoard的大部见识都很牵强XD

Matthijs Hollemans

自家一样也是一个正视视觉的人,同样我也欢跃在可视化的角度去办事,Xcode可以变得比后天越来越的可视化,不仅仅是在协会Nibs和StoryBoard上边,Xcode还是能可视化的做过多的事体,举个栗子,可视化的操控UI成分,我更爱好在Nibs下做这几个业务,我不觉得那种艺术(使用Nibs)会被淡化,因为本身认为苹果并没有花太多的念头在团结的开发工具上,它大概只给了付出须要选取的最少功能,尤其在与其他的IDE比较起来的时候,我梦想Xcode在未来会变得进一步的可视化

Felipe Laso Marsetti

等一下!你甚至说苹果没有花心绪在开发工具上?╰(‵□′)╯

Matthijs Hollemans

额,确实,这一块对她们而言并不是很主要,他们纵然给了开发者appstore,不过如果她们确实敝帚千金这一块,他们理应会给大家更加多更实用的工具

Felipe Laso Marsetti

那是一个值得琢磨的位置,主题的题材是,不管您喜不喜欢,autolayout与StoryBoard都会持续存在,二零一七年WWDC,苹果揭橥iOS8,大家将会看到苹果在StoryBoard以及Interface
Builder下面做的工作,可视化将会变得更为的精锐,有一点我索要考虑的就是是还是不是要在大型项目中精选使用Nibs,StoryBoard是以ViewController为底蕴成分的,而Nibs是以View为底蕴成分的,一个nib就是一个view,那样在伊始接纳的时候会有点不适于,因为您想要创造一个自定义的view,可是你又不可见在平昔在StoryBoard里面达成
其余关于苹果专注于appstore等难点,这么些是事实,不过切记,苹果也规定了全方位UI、开发了StoryBoard、Interface
Builder,他们制作这一全部生态链;别的关于StoryBoard,你可以用来创制万分不难的app,遭遇复杂的app,你大概会去挑选Nibs,我认为那是大错特错的,你依然会在联合的时候境遇争执;我想说的是,尝试一下,倘使您要求扶助,来我那边,你明白在哪儿可以找到本人;使用StoryBoard,你确实可以做出格外复杂的类型,质量难点一贯无需去担心,在后天的5与5s地点就进一步没有要求去担心这一个题材了

Tammy Coron

StoryBoard让自家深感劳苦的是,你只可以在和谐的app上边创立自定义views,为何我要浪费时间去行使StoryBoard,我用Nibs就可以完全搞定了

Felipe Laso Marsetti

因为StoryBoard可以更好的管理你的视图,当用户在app里进入视图与重临视图,你的控制器就是一个scene,所以你可以更进一步可视化的对待这一个,你可以了然的了解自身会被带到那里去,自定义的view是单身的局地,你可以运用一个nib创造一个自定义的view,然后重用相当频仍,同样要铭记在心,StoryBoard允许你重用你的控制器而不用在StoryBoard里面重复的去创造这一个,你居然足以选择code来创立,你不应该被限定到那里面去,当您结合nibs去行使StoryBoard的时候会愈发的出色

Tammy Coron

我也可以通过望着项目标导航部分来管理自身的档次,那是自身的第二个视图,那是本人的第三个视图,等等,我索要找到一个很好的理由让本身去行使StoryBoard,我同意关于StoryBoard就是前景的看法,不管大家喜不喜欢,autolayout就是鹏程的来头,可是自身的确很难喜欢上StoryBoard

Felipe Laso Marsetti

那里有一个很好的事例,我二〇一八年接替了一个连串,包涵了五六十个ViewController,并且有一大堆的nibs,在我起来贡献代码此前本身只可以去长远其中去探讨这几个东西,因为那些类型不是本人写的,那些项目已经做了1-2年了,在刚开始的多少个月我完全迷失在那个类型里面,我不得不去搞驾驭这一个nib文件之间的涉及,这实在是万分艰巨
只是如若本身有一个StoryBoard,那么所有都将会清晰明了,那会节省不可枚举的时光;所以你应该至少使用StoryBoard来创制app的布局,然后再去具体的炮制一些自定义的酷炫UI,选用专擅一种你喜欢的不二法门;当您接手一个大型项目的时候StoryBoard确实会帮您大忙

红衣叔伯

自个儿参与的项目具有百万行的代码,几百个视图,我不领悟大家是不是必要去采取StoryBoard,可是我会去尝试一下,你说的很不利

Cesare Rocchi

额,我已经有两三年从未去做大型项目了,当本人依然记得那时候的伤痛,比如去处理千丝万缕的结构体,尽管完全使用code来做的连串,要去处理那样那样的结构体也是一件相当拮据的事务,其实本人也一致是一个倚重于视觉的人,不过自个儿并不想在Xcode上边以可视化的花样来做项目,我更欣赏在PhotoShop或许Sketch上面去做这么些业务,做一个佳绩的coder,你不能不要领会种种东西,那是一个view这是一个button,这几个是还是不是越发的灵敏等等,这就是干吗我打开Xcode的时候,我期望我的首先个视图是一个空荡荡的沙盘
在我的上一个品种当中,我在一个很小的一些行使了NavigationController,可是我添加的是本人自定义的一个NavigationController,那是一个自定义度很高的一个app,在这么些类型里面,我完全看不出哪里可以选拔StoryBoard,我都是用代码把全体解决,相当的简便,而且可以很好的重用它们,我做的都是自定义度很高的app,唯一一个接纳到的视图模板就唯有tableview

红衣大叔

在自身的经验看来,客户平常会给自身Photoshop文件,告诉我那就是app要看起来的典范,然后你早先写代码,只怕还有其余的主意,但是我觉得写代码是一种轻松的章程

Felipe Laso Marsetti

从自家的阅历无法知道在客户端同盟开发的时候会爆发什么,不过你取得一个Photoshop文件,你得到一个须要文档,然后对您说这就是app要看起来的金科玉律,然后视图A到视图B是哪些的,视图B到视图C又是哪些的,把那么些做出来,告诉你定期,然后拜拜
额,你使用code或然Nibs来做会很酷,不过你可以动用StoryBoard来做那几个事物,就到底极度复杂的UI也足以做到;在我的商家里面,经常会有自定义UI的要求,大家大概要求利用格外多的工具,包含code甚至是PaintCode,以及此外可以变更可视化的UI的工具,Nibs大概是StoryBoard,可以选择StroyBoard我会极度的欢跃,可以看来自身行使了StoryBoard完毕了一个有一个的职务

Brian Moakley

大家切磋了autolayout,钻探了StoryBoard,并且现在以为它们就是鹏程,可是,一年过后,大家兴许又会说其他的东西是前景,所以,大家应该重新思考大家的app到底是哪些运行的,知道那个新技巧真正很不错,可以拉长大家的工作功效,可是自身想,驾驭怎样采纳code来成功具有事情是很睿智的

Felipe Laso Marsetti

iOS7给了豪门各样各种的机遇去尝尝StoryBoard,甚至是Nibs,借使你拒绝使用StoryBoard,恐怕因为您现在会接纳一种截然差距于与往常的办法来创建app;既然您现在有一个机会来解脱原来那么麻烦的付出进度还要尝试新的工具以及利用iOS7牵动的全新UI,为何不试一下呢?

红衣小叔

一个很好的尝尝StoryBoard的说辞就是使用StoryBoard可以动态调节尺寸来适应差距的装置,而autolayout将会是最好的化解方案

Cesare Rocchi

我并不喜欢StoryBoard或许是Nibs,但是本身不得不去理解它们,越发是本人在教学的时候,不管是教autolayout仍然Nibs,我都会提出您去学学如何利用代码来成功那整个,Nibs或许是StoryBoard做了成百上千的干活,你相信着这一个工具,不过却不了然它们背后的代码原理是怎么,它们在悄悄做了什么样业务,那很不佳;若是你想要成为一名专业的iOS开发者,我想你最好明白各类各种的开发方法,无论是StoryBoard、Nibs如故code

Felipe Laso Marsetti

此处有一个很好的例证来证实清楚code的法门很要紧,有为数不少人日常会问一些标题就是干吗我的视图不能切换、为啥dataSource不起功效等等,知道哪些行使code会很好的支持您化解这么些题材,一旦你精通如何使用code,那您采纳StoryBoard或然是Nibs将会是如虎得翼,知道code确实相当的显要

Matthijs Hollemans

在Nibs或许是StoryBoard中动用autolayout是可怜好了解的,使用code来写约束很粗略,但是多数时候都没有意义,不过假诺您在Interface
Builder里面做这么些,它会告诉你哪些的封锁是有意义的,它会报告您哪个地方应该加约束,哪里不应当加;在Nibs只怕StoryBoard里面做那一个要比选用code更好

Felipe Laso Marsetti

明亮code确实很有必不可少,大部分人在做iOS开发的时候不知晓语言背后的片段原理,那或者会招致局地谬误,或是内存败露等等,同样的动静也会在动用StoryBoard恐怕是Nibs的时候发出,即便选择这么些工具开发起来会分外的方便,可是如若您不晓得背后的代码原理,你或者会在debug的时候境遇困难

Raywenderlich

那就是说接下去是投票环节了,Nibs、StoryBoard、code,你会接纳哪一个?

Brian Moakley

StoryBoard

Cesare Rocchi

Code

Matthijs Hollemans

StoryBoard

红衣三叔

StoryBoard

Felipe Laso Marsetti

未曾须求问我

Chris Wagner

StoryBoard

Raywenderlich

自己也一律是StoryBoard

Tammy Coron

额,我可怜喜欢Nibs,所以我会选取Nibs,然而如若要自我在Nibs和code间做一个挑选,我会选用code,因为code可以做任何工作

Raywenderlich

OK!看来各位大多数都是挑选了StoryBoard

总结

就小编个人而言,两种办法本人都尝尝过,个人更偏爱拔取code,当然根据差距的风貌我会结合各自的助益进行付出;如上所述,StoryBoard是鹏程,即便还有不够健全的地点,不过相信苹果会将其做的进一步好,
StoryBorad也会逐年展现出它的魔力

拓展阅读

代码手写UI,xib和StoryBoard间的对弈,以及Interface Builder的片段小技巧
http://t.cn/8kdcjt6

相关文章