本来依照区别的场景作者会结合各自的优点实行支付,红衣三叔

前言

做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爱好者”,我们将从塞萨尔e Rocchi早先

Cesare Rocchi

第②,code是不行清晰直观的,你能够一贯望着代码,你不须要开辟愚钝的Nib文件,并且毫不深切切磋然后找出有个别繁杂因素到底关联了只怕尚未关系,这一个都很傻;当您在支付七个大型项目标时候那种情势非凡的有用;当自家从二个crazy
guy那里接手二个项目,那几个体系是用StoryBoard或许Nibs做的,最后笔者会用code重写所用的东西,你能够在StoryBoard可能Nibs设置好全部东西,不过最终你能够用代码重写全体的事态;比如你在二个nib文件之中安装了三个lable,当你运维这一个app的时候这么些lable看起来与您设置的不太雷同,那是因为其它壹位在后来添加了一条龙代码改变了要命lable的性质

Tammy Coron

当听到她(Cesare
Rocchi)如此贬低Nib的时候让自家七窍生烟,作者当做1个顺序媛有十分短一段时间了,笔者见过12分多的程序猿喜欢使用code的不二法门来支付的;但就自个儿个人而言,笔者是三个不胜信赖于视觉的人,我兴奋通过可视化的法子来展开编制程序,所以小编选用选拔Nibs;你或然会说利用StoryBoard能够比使用Nibs看到越多的东西,不过对自家的话,笔者并不欣赏StoryBoard,因为StoryBoard能做的很单薄,特别是当您在写1个大型项目标时候仍旧你与任何的人搭档的时候,假若选拔StoryBoard你将会把持有的UI都集中在3个文本之中,这会造成同盟变得卓殊困难,合并上也会有为数不少的难为;StoryBoard上还有2个一点都不小的难点不怕,它不容许你操作太多的性能,特别是在分裂的View里面使用TableViewCells的时候,你不可能在StoryBoard里面收音和录音它们,你或者能够成功可是会相比较费心,而Nib要做起那几个会进一步的简易;并且你绝不想去在StoryBoard里自定义Controller可能是View,无论何时想要做到这么些你最好去选取Nib

对于code,小编同意假使应用code要做过多的行事,必必要去领略Nib背后的代码,然而使用Nib你可以火速看到本身对成分操作的职能,如若采纳code,你写好全数的因素,设置好它们的性质,再将它们增加到视图里面,你不能够不要在运营app之后才能够看到实际的坚守,那是极度首要的政工,没有人在意代码到底长什么,他们只会关切app看起来何等,
最好的观察措施正是利用Nib来做

So,小编说不定有点小感动,等本人冷静下来小编会说得更好,XD

Raywenderlich

老大不错的意见,以后轮到最后1人发言了,Felipe该你上了

Felipe Laso Marsetti

So,Cesare你便是个坏蛋;Tammy并没有让自家觉得恼火,因为她很讲究可视化,而可视化正是今后,就算code很酷,可是可视化将会是前景,不错,Nib也许越发的酷尤其的私行,然而以后肯定是StoryBoard的天下,它能够让你成功一些Nib与code做不到的作业,当您在集合代码可能统一Nib的时候你依然会境遇争辩,每当你触碰Nibs,Xcode就会并非理由的认为你转移了它,所以您要描述那样的改动,因为Xcode认为它改变了,仅仅因为您看了它一眼

StoryBoard更好,不用再像Nib恐怕code那样工作,若是您利用code,你须求周转你的app,看布局是或不是合理,然后重返更改布局属性,再运转app来看效果,不断的重复,那样成效特其余低,也许使用Nib会有所好转,不过当您在做3个大型项指标时候,你会有三叁20个ViewController,那样你或然就会有四50个Nib文件,那会要命的讨厌,因为你要足够小心的做一些改动

唯独StoryBoard不仅能够让你幸免写一大堆无聊的代码,甚至是幸免这一个要在Nib下写的代码,比如动用segue和unwind
segue,你能够由此一多元的delegate方法来传输数据,你能够安装转场动画,你还是足以自定义动画

世家都觉得大家只能在三个StoryBoard上面工作,不过其实我们能够在时时刻刻叁个StoryBoard上边工作;当大家在支付集团级客户端的时候,大家平日都以3-七位的团伙,我们会有11个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是怎么样连接的,然后再去处理自个儿的代码;但是倘诺您把全部都用代码来做将会12分的繁琐,要去设置那样那样的属性,oh
my
god,简直无聊死了,根本正是在浪费时间;小编看不惯使用StoryBoard,使用StoryBoard的人就好像僵尸一样,一个big
boy不应当去接纳StoryBoard,额,反正自个儿正是不爱好XD

Raywenderlich

So,Felipe你是那里最青春的分子,你也不行喜爱僵尸,你有何样观点?

Felipe Laso Marsetti

额,小编正是1个僵尸StoryBoard用户,我强烈建议使用StoryBoard,code是相当有必不可少的,有时候你只好去写一些代码来形成那三个可视化实现不了的干活,比如自定义UI,然则这多少个都不是常用的,超过52%时候利用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在那之中是单独的,那样您就不得不去新建1个又1个的cell;但是在StroyBoard里面,只必要三个tableview,1七个cells,然后boom~~,太美好了,节省时间,让客户端更简明,更少的bug,而且一切都以在可视化下完了的,你不用去不停的stop、run、stop、run,然后去看你的nib文件以及你的代码,僵尸赢了

Raywenderlich

没错的实证,有一点自个儿不断听到的正是,使用可视化的User Interface
Designer,你能够幸免越来越多的代码,能够减弱bug,你们怎么看待这几个意见?

Cesare Rocchi

额,在autolayout出现在此以前笔者会同意那个视角,若是让笔者对Interface
Builder实行打分(11分制),在过去笔者会给五分,当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会始终存在着,我们将会有差别尺寸的设施亟需去适配,surfacemini、一加④ 、4s、三星GALAXY Tabretina,autolayout能够辅助大家去做到那几个适配,Nin与StoryBoard都能够让你可视化的去行使autolayout,你能够10分直观的在荧屏上海展览中心开布局,然而一旦去行使code,那将会是一件极度麻烦的事体

选择StoryBoard在debug的时候你能够相当直观的来看,在Xcode5上,你能够预览自个儿的布局,一旦你改变布局约束,改变设备的尺寸,你能够立时就看到结果,假设你利用code,你就不得不debug、run、debug、run,相当的难为;就个人而言,笔者也不是丰硕的喜欢autolayout,纵然在Xcode5与iOS7后头有所改进,但依然不是很好用,那么些我们无法,不过无论怎么着,使用Interface
Builder会好过使用code

Raywenderlich

OK!不错的论证,接下去会没完没了实行半个时辰的商讨,Cesare从你起来

Cesare Rocchi

code是不行清晰直观的,你能够写完以往登时运维,然后得出运转结果,你不供给深切到伍个例外的性质编辑器个中,来搞明白那一个变量属性等等是哪些棉被服装置的

最终一点自个儿想要说的是,Interface
Builder背后的视角是特别科学的,那个理念是想要让设计师运用来设计UI,不管是Nibs还是StoryBoard都会让你直观的收看您的app长什么体统,就如在稍微时候,你不需求有多个填写着多少的tableview,作为贰个设计师,根本就不会供给2个填写着真正数据的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,就如A昂CoraC,就像一代又近来的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里面,你就必要3次性的弄了然这一大堆的东西,小编以为像Nibs那么被划分会更好,允许你使用segue来连接其余东西,你应当每一趟只处理3个荧屏,那样更包容你的Xcode窗口大小,但是StoryBoard占用了太大的空中

司机

大家都知情使用StoryBoard可以卓殊不难的做出二个简练的行使,在AppStore当中十分之八的接纳都是属于简单利用,有成都百货上千的开发者都以业余的,包罗自家也是,作者只是想出了非常好的idea,但不自然要做出极屌的app,小编想StoryBoard正是为这一个人准备的

Chris Wagner

那是很好的一点

Tammy Coron

你能够只是是nibs来营造1个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,你能够用来创建11分不难的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

自家也得以通过瞧着项指标导航部分来治本自个儿的品种,那是自身的首先个视图,那是作者的第二个视图,等等,小编急需找到3个很好的说辞让自家去行使StoryBoard,小编同意关于StoryBoard正是鹏程的见识,不管大家喜不喜欢,autolayout就是今后的趋势,可是本人实在很难喜欢上StoryBoard

Felipe Laso Marsetti

那边有1个很好的事例,小编2018年接手了三个品类,包涵了五6二个ViewController,并且有一大堆的nibs,在自己发轫贡献代码从前小编只能去深切个中去研讨那一个东西,因为那个项目不是自个儿写的,那一个体系早就做了1-2年了,在刚开头的多少个月小编完全迷失在那几个项目里面,小编不得不去搞掌握这一个nib文件之间的涉及,这实际是可怜不便

而是只要小编有1个StoryBoard,那么一切都将会清晰明了,那会省掉不计其数的时刻;所以您应当至少使用StoryBoard来创建app的布局,然后再去具体的造作一些自定义的酷炫UI,选择专擅一种你喜爱的措施;当你接手贰个大型项指标时候StoryBoard确实会帮您大忙

红衣大伯

自己加入的花色全体百万行的代码,几百个视图,笔者不知底大家是或不是需求去选拔StoryBoard,但是作者会去品尝一下,你说的很不错

Cesare Rocchi

额,我曾经有两三年从未去做大型项目了,当自身如故记得那时候的伤痛,比如去处理千丝万缕的结构体,固然完全使用code来做的项目,要去处理那样那样的结构体也是一件尤其辛勤的作业,其实自身也一律是多个信赖于视觉的人,可是本人并不想在Xcode上边以可视化的款式来做项目,小编更欣赏在PhotoShop或许Sketch上边去做这个事情,做三个美艳的coder,你不可能不要清楚种种东西,那是3个view那是一个button,那个是还是不是尤其的利落等等,那正是怎么本人打开Xcode的时候,作者盼望笔者的率先个视图是一个空白的模版

在小编的上2个类型个中,作者在八个不大的片段使用了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,为何不试一下呢?

红衣大叔

3个很好的尝尝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间做3个选项,笔者会选取code,因为code能够做其它事情

Raywenderlich

OK!看来各位超越55%都以选拔了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文件,并且毫不深远讨论然后找出部分复杂因素到底关联了依旧尚未关联,那么些都很傻;当你在支付3个大型项指标时候那种措施充足的有用;当笔者从2个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都汇聚在三个文书之中,那会促成合作变得11分勤奋,合并上也会有无数的勤奋;StoryBoard上还有贰个十分的大的难点固然,它不允许你操作太多的性质,尤其是在分化的View里面使用TableViewCells的时候,你不得以在StoryBoard里面收录它们,你大概能够做到不过会相比劳累,而Nib要做起那一个会尤其的简便;并且你不用想去在StoryBoard里自定义Controller恐怕是View,无论什么时候想要做到那些你最好去采纳Nib
对于code,作者同意假若选用code要做过多的工作,必供给去掌握Nib背后的代码,可是利用Nib你可以连忙看到本身对成分操作的功力,若是采纳code,你写好全部的要素,设置好它们的质量,再将它们增进到视图里面,你无法不要在运转app之后才能够见到实际的效应,那是这些关键的事体,没有人在意代码到底长什么,他们只会关切app看起来何等,
最好的洞察措施正是应用Nib来做
So,小编只怕有点小感动,等自家冷静下来小编会说得更好,XD

Raywenderlich

可怜正确的见地,以后轮到最终1位发言了,Felipe该你上了

Felipe Laso Marsetti

So,塞萨尔e你正是个混蛋;Tammy并从未让自家备感恼火,因为她很尊敬可视化,而可视化正是鹏程,就算code很酷,但是可视化将会是今后,不错,Nib也许特别的酷特别的即兴,不过现在肯定是StoryBoard的满世界,它能够让你成功一些Nib与code做不到的事体,当您在联合代码或许合并Nib的时候你依旧会境遇争持,每当你触碰Nibs,Xcode就会毫不理由的觉得你改变了它,所以您要描述那样的变动,因为Xcode认为它改变了,仅仅因为您看了它一眼
StoryBoard更好,不用再像Nib只怕code那样工作,如若您使用code,你须要周转你的app,看布局是还是不是创立,然后回到更改布局属性,再运维app来看效果,不断的双重,那样效用特别的低,可能使用Nib会有所立异,不过当你在做2个大型项目标时候,你会有三三十四个ViewController,那样您或者就会有四46个Nib文件,那会这些的讨厌,因为您要那贰个小心的做一些修改
只是StoryBoard不仅能够让您幸免写一大堆无聊的代码,甚至是防止这几个要在Nib下写的代码,比如利用segue和unwind
segue,你可以透过一密密麻麻的delegate方法来传输数据,你能够设置转场动画,你居然能够自定义动画
世家都认为大家不得不在一个StoryBoard上边工作,可是实际我们得以在时时刻刻三个StoryBoard上边工作;当我们在开发集团级客户端的时候,大家家常便饭都以3-五个人的公司,我们会有11个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的时候,作者喜欢保持自个儿的手放在键盘上面,而不用去打开2个nib文件然后去做一些事关,然后又将手放回键盘继续coding,那样会下落笔者的工效;还有一些要提的就是,不止三回,特别是在开端的时候,作者会望着显示器,尝试着找出是谁TMD给这么些本性设置了值,什么人安装了x或许y,在哪里或许是什么样设置的等等,That’s
all!

Raywenderlich

So,Cesare说使用code会让他的工效更高,Tammy你有哪些要说的吗?

Tammy Coron

额,当你瞅着nib文件的时候,你并不须要过多的去关爱那么多的习性,它们是怎么设置的以及它们怎么着的关联,当您利用nib工作的时候,你只要求将您的psd文件处理今后放到nib文件之中,那样你直接就足以看看功效,然后您再去关联代码,作者想说的是采用nib一切都丰盛的急迅
自家可以在app完结未来深入到framework里面,在11分简单的年月里面,在那在那之中没有代码,唯有可视化的因素,这样就足以非常快的中肯到screen里,去看你的app是什么样连接的,然后再去处理本人的代码;不过倘使你把全部都用代码来做将会要命的繁琐,要去设置如此那样的性质,oh
my
god,简直无聊死了,根本便是在浪费时间;笔者看不惯使用StoryBoard,使用StoryBoard的人就像是僵尸一样,多个big
boy不应有去选取StoryBoard,额,反正小编正是不希罕XD

Raywenderlich

So,Felipe你是此处最青春的分子,你也尤其喜爱僵尸,你有如何观点?

Felipe Laso Marsetti

额,笔者正是3个僵尸StoryBoard用户,小编强烈提出使用StoryBoard,code是不行有必不可少的,有时候你不得不去写一些代码来形成那个可视化完结不了的办事,比如自定义UI,不过这几个都不是常用的,超过3/6时候使用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当中是单独的,那样您就只能去新建1个又贰个的cell;可是在StroyBoard里面,只要求贰个tableview,十八个cells,然后boom~~,太优异了,节省时间,让客户端更简短,更少的bug,而且一切都是在可视化下做到的,你不用去不停的stop、run、stop、run,然后去看你的nib文件以及你的代码,僵尸赢了

Raywenderlich

毋庸置疑的论证,有一点本人不断听到的便是,使用可视化的User Interface
Designer,你能够幸免越来越多的代码,能够减小bug,你们怎么对待那几个意见?

Cesare Rocchi

额,在autolayout出现在此以前笔者会同意那几个意见,倘使让自个儿对Interface
Builder举行打分(拾壹分制),在过去小编会给伍分,当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会始终存在着,我们将会有例外尺寸的设施亟需去适配,三星GALAXY Tabmini、黑莓肆 、4s、surfaceretina,autolayout可以支持我们去完毕这几个适配,Nin与StoryBoard都足以让您可视化的去行使autolayout,你能够11分直观的在荧屏上拓展示公布局,不过假诺去行使code,这将会是一件非凡麻烦的作业
利用StoryBoard在debug的时候你能够足够直观的看出,在Xcode5上,你能够预览本人的布局,一旦您转移布局约束,改变设备的尺寸,你能够马上就来看结果,假设您使用code,你就只可以debug、run、debug、run,非凡的劳累;就个人而言,作者也不是相当的喜欢autolayout,虽然在Xcode5与iOS7随后有所改革,但如故不是很好用,这些大家无能为力,不过无论怎样,使用Interface
Builder会好过使用code

Raywenderlich

OK!不错的实证,接下去会没完没了进行半个钟头的议论,Cesare从你起来

Cesare Rocchi

code是可怜清晰直观的,你能够写完未来立即运维,然后得出运转结果,你不要求深切到多少个差别的特性编辑器个中,来搞领悟那几个变量属性等等是何许被设置的
说到底一点本身想要说的是,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后边说了2个僵尸吃大脑的戏弄,听得不是很懂就没翻译了)

Raywenderlich

Awsome!Felipe?

Felipe Laso Marsetti

额,StoryBoard正是前景,就像是block,就如A宝马X3C,就像一代又一代的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来创设2个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

那是1个值得研商的地点,大旨的题材是,不管您喜不喜欢,autolayout与StoryBoard都会持续存在,二〇一八年WWDC,苹果发布iOS8,大家将会看到苹果在StoryBoard以及Interface
Builder上边做的工作,可视化将会变得更其的无敌,有一点自身急需考虑的正是是还是不是要在大型项目中甄选选拔Nibs,StoryBoard是以ViewController为根基成分的,而Nibs是以View为底蕴成分的,2个nib便是三个view,那样在开班使用的时候会有点不适于,因为您想要成立1个自定义的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

这边有1个很好的例证,我二零一八年接手了三个项目,包括了五六10个ViewController,并且有一大堆的nibs,在本人起来贡献代码此前小编不得不去深刻个中去研讨这一个事物,因为那一个类型不是自家写的,这几个项目早就做了1-2年了,在刚先河的多少个月笔者一心迷失在那一个类型里面,作者只得去搞通晓那么些nib文件之间的关联,那实际上是老大不方便
唯独一旦本身有贰个StoryBoard,那么万事都将会清晰明了,那会省去恒河沙数的时日;所以您应当至少使用StoryBoard来创立app的布局,然后再去具体的造作一些自定义的酷炫UI,选用私自一种你欢愉的章程;当您接手一个大型项目标时候StoryBoard确实会帮你大忙

红衣三叔

本黄参加的体系拥有百万行的代码,几百个视图,小编不知情大家是不是须求去行使StoryBoard,可是笔者会去尝试一下,你说的很科学

Cesare Rocchi

额,小编已经有两三年从未去做大型项目了,当自家依旧记得那时候的悲苦,比如去处理千丝万缕的结构体,尽管完全使用code来做的花色,要去处理那样那样的结构体也是一件非凡不方便的事体,其实本人也如出一辙是三个凭借于视觉的人,但是笔者并不想在Xcode上面以可视化的款型来做项目,小编更爱还好PhotoShop可能Sketch上面去做这么些业务,做八个完好无损的coder,你必须要精晓各种东西,那是2个view那是1个button,那一个是或不是更加的灵敏等等,那便是怎么本人打开Xcode的时候,作者期待小编的首先个视图是三个空白的沙盘
在自个儿的上3个品类个中,小编在多少个一点都不大的局地行使了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实现了贰个有3个的天职

Brian Moakley

小编们商讨了autolayout,探究了StoryBoard,并且未来觉得它们正是以往,可是,一年现在,大家大概又会说其余的事物是未来,所以,大家应该重新考虑大家的app到底是怎样运维的,知道那个新技巧真正很不错,能够进步我们的工效,可是小编想,了然如何采用code来成功具有工作是很精明的

Felipe Laso Marsetti

iOS7给了豪门种种各个的火候去品味StoryBoard,甚至是Nibs,要是你拒绝利用StoryBoard,恐怕因为您未来会选拔一种截然不一致于与过去的法门来创设app;既然您以往有1个火候来解脱原来那么麻烦的支出进度还要尝试新的工具以及使用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是以往,固然还有不够健全的地点,不过相信苹果会将其做的更为好,
StorySANTANAd也会日渐显示出它的吸引力

展开阅读

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

网站地图xml地图