Storyboards vs NIBS vs Code Debate(翻译)

前言

做iOS开辟的童鞋都应该会纠结一个标题,那就是在做开辟的时候是使用StoryBoard照旧选拔Nibs又或许是Code(纯代码流)呢?小编也不行纠结那些题目,明天碰巧在raywenderlich上面见到了多少个大神之间的撕逼,哦不,研讨之后,感觉得到广大,于是就将他们谈谈的内容整理翻译了一下,如有不当之处,还请多多原谅,原录像请戳这里

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

讨论

Ray Wenderlich

Ok!今后大家都在线,多谢各位的赶来,前日大家会有一个斟酌关于iOS开垦的研商,是选项Storyboards、Nib如故Code,我们有八个志愿者,塞萨尔e Rocchi代表的是“Code爱好者”,Tammy Coron 代表的是“Nib爱好者”,Felipe Laso Marsetti代表的是“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你就是个坏蛋;Tammy并未让小编备感恼火,因为她十分重视可视化,而可视化便是前景,尽管code很酷,然则可视化将会是前景,不错,Nib或许越来越酷越来越随机,可是以后早晚是StoryBoard的大世界,它能够令你完结一些Nib与code做不到的事体,当您在集合代码恐怕统一Nib的时候你仍旧会遇见冲突,每当你触碰Nibs,Xcode就能并非理由的以为你改动了它,所以你要陈诉那样的转移,因为Xcode以为它改造了,仅仅因为你看了它一眼

StoryBoard越来越好,不用再像Nib可能code那样职业,假设你利用code,你需求周转你的app,看布局是还是不是站得住,然后重临改换布局属性,再运营app来看成效,不断的双重,那样功用异常的低,也许使用Nib会有所立异,然而当你在做二个大型项目标时候,你会有三39个ViewController,那样你只怕就能够有四伍十二个Nib文件,那会要命的讨厌,因为您要那么些小心的做一些修改

而是StoryBoard既能够让您防止写一大堆无聊的代码,乃至是幸免那么些要在Nib下写的代码,比方采纳segue和unwind segue,你能够因此一多级的delegate方法来传输数据,你能够安装转场动画,你乃至足以自定义动画

大家都是为大家只还好叁个StoryBoard上面职业,可是实际上我们能够在相连二个StoryBoard下边职业;当我们在支付公司级客商端的时候,咱们经常都以3-5个人的团伙,大家会有12个StoryBoard,那特不错,因为你能够将逐个模块分开,比方about模块、反馈模块或然社交模块,你能够观望可视化的layout,为了防止旁人说StoryBoard变得进一步大,越来越慢,你可以试着展开它,然后,boom~~,你可以知道地通晓怎么着连接着怎么着,什么要去何地,你可以命名你的segue,你能够具备相当多的自定义,全体的那总体都预示着StoryBoard将会是鹏程

理之当然,Nibs和code是很有用的,并且自个儿也提出在供给的时候去行使Nibs和code,不过小编想说在Xcode中利用StoryBoard是十一分有益的,那是苹果在用的东西,他们为StoryBoard做了充足多的劳作,它正是鹏程,并从未丰富的凭据来证实StroyBoard相当慢很臃肿或许其余,未有丰盛庞大的证据来表达这一部分;笔者刚烈提出使用StoryBoard,当供给的时候你能够使用code可能nibs,不过本人提议您尽量幸免去行使,因为StoryBoard才是王道

Raywenderlich

Awsome!十分的屌的见地!So,接下去每一个人都有三个火候为友好的观点进行分辨,那么,塞萨尔e你有怎样要说的啊?

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,21个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会始终存在着,我们将会有例外尺寸的设施亟需去适配,iPadmini、酷派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那样对待它,它就好像活死人同样(恐怕是狐狸精的情致)(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个中五分之四的采取都以属于简单利用,有好些个的开拓者都以业余的,富含自家也是,小编只是想出了这些好的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

此处有四个很好的事例,笔者二零一八年接手了多个品类,富含了五六12个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是鹏程,纵然还会有相当不够完善的位置,不过相信苹果会将其做的愈加好, Story凌度d也会日益表现出它的吸引力

做iOS开拓的童鞋都应有会纠结贰个问题,那正是在做开采的时候是运用StoryBoard依旧使用Nibs又或许是Code(纯代码流)呢?作者也非凡纠结那一个难题,前几天碰巧在raywenderlich下面看见了多少个大神之间的撕逼,哦不,研究之后,以为获得累累,于是就将他们商量的源委整理翻译了须臾间,如有不当之处,还请多多原谅,原录制请戳这里
http://t.cn/zRAb4NF

拓宽阅读

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的片段小才具

讨论

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你正是个坏蛋;Tammy并不曾让自己认为恼火,因为他很体贴可视化,而可视化便是前景,固然code很酷,不过可视化将会是前景,不错,Nib或者更为的酷越来越专擅,不过今后一定是StoryBoard的全世界,它可以让您做到一些Nib与code做不到的政工,当你在群集代码或然统一Nib的时候你仍然会遇见争执,每当你触碰Nibs,Xcode就能够实际不是理由的以为你转移了它,所以您要描述那样的改造,因为Xcode感到它退换了,仅仅因为您看了它一眼
StoryBoard越来越好,不用再像Nib大概code这样职业,如若你利用code,你须要周转你的app,看布局是不是站得住,然后回到更换布局属性,再运维app来看功效,不断的双重,那样效能非常的低,只怕使用Nib会有所改进,不过当您在做三个大型项目标时候,你会有三四拾一个ViewController,那样你恐怕就能够有四50个Nib文件,那会丰富的讨厌,因为你要万分小心的做一些改动
只是StoryBoard不仅可以够让你幸免写一大堆无聊的代码,以至是幸免这几个要在Nib下写的代码,比方利用segue和unwind segue,你能够经过一多元的delegate方法来传输数据,你能够安装转场动画,你还是可以自定义动画
世家都以为咱们不得不在贰个StoryBoard上边专门的学业,可是事实上大家能够在不断贰个StoryBoard上面职业;当大家在付出企业级顾客端的时候,大家平时都是3-5个人的团伙,大家会有12个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,塞萨尔e说使用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,十八个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、HTC4、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其中八成的应用都以属于轻便利用,有为数十分多的开采者都以业余的,富含我也是,小编只是想出了充裕好的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是现在,尽管还会有相当不够完美的地点,可是相信苹果会将其做的越来越好, Story迈锐宝d也会稳步表现出它的魔力

扩充阅读

代码手写UI,xib和StoryBoard间的博艺,以及Interface Builder的一些小技术
http://t.cn/8kdcjt6

本文由明仕msyz手机版发布于家居装修-蜗牛装饰,转载请注明出处:Storyboards vs NIBS vs Code Debate(翻译)

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。