StoryCamarod也会稳步显示出它的魔力,红衣公公

前言

做iOS开发的童鞋都应当会纠结一个标题,这正是在做开发的时候是选拔StoryBoard依然利用Nibs又也许是Code(纯代码流)呢?作者也分外纠结这些标题,明日碰巧在raywenderlich上边看到了多少个大神之间的撕逼,哦不,探究之后,感觉得到广大,于是就将他们探究的情节整理翻译了一下,如有不当之处,还请多多原谅,原录制请戳这里

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

讨论

Ray Wenderlich

Ok!以后大家都在线,多谢各位的赶来,后天我们会有叁个切磋有关iOS开发的斟酌,是选取Storyboards、Nib照旧Code,大家有五个志愿者,Cesare
Rocchi代表的是“Code爱好者”,苔米 Coron 代表的是“Nib爱好者”,Felipe
Laso Marsetti代表的是“StoryBoard爱好者”,大家将从Cesare Rocchi开始

Cesare Rocchi

先是,code是丰裕清晰直观的,你能够直接盯着代码,你不必要打开鲁钝的Nib文件,并且毫不深切钻研然后找出一部分犬牙相制因素到底关联了仍旧不曾提到,这么些都很傻;当你在开发三个大型项指标时候那种办法尤其的有用;当自个儿从一个crazy
guy那里接手三个品类,那几个类型是用StoryBoard可能Nibs做的,最后笔者会用code重写所用的事物,你能够在StoryBoard也许Nibs设置好全数东西,可是最终你可以用代码重写全部的状态;比如您在三个nib文件之中安装了1个lable,当你运转那一个app的时候那些lable看起来与您设置的不太雷同,那是因为其它1人在此后添加了一行代码改变了12分lable的习性

Tammy Coron

当听见她(Cesare
Rocchi)如此贬低Nib的时候让小编怒气冲冲,笔者当做叁个程序媛有十分长一段时间了,笔者见过尤其多的程序猿喜欢使用code的法门来支付的;但就笔者个人而言,小编是2个格外重视于视觉的人,小编欣赏通过可视化的艺术来展开编制程序,所以我选用使用Nibs;你也许会说选拔StoryBoard能够比选用Nibs看到愈来愈多的事物,不过对自家的话,笔者并不爱好StoryBoard,因为StoryBoard能做的很单薄,尤其是当你在写3个大型项目标时候依然您与任何的人合营的时候,假设使用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会有所革新,不过当您在做1个大型项目标时候,你会有三叁20个ViewController,那样你大概就会有四4伍个Nib文件,那会分外的讨厌,因为你要十分的小心的做一些改动

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

世家都觉得大家只万幸一个StoryBoard上面工作,然则事实上大家可以在不断二个StoryBoard下边工作;当大家在付出公司级客户端的时候,大家经常都以3-六人的共青团和少先队,我们会有13个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

额,笔者正是1个僵尸StoryBoard用户,小编强烈建议使用StoryBoard,code是可怜有必不可少的,有时候你只可以去写一些代码来达成那一个可视化实现不了的劳作,比如自定义UI,但是那1个都不是常用的,半数以上时候利用StoryBoard就足以满足须要了;使用StoryBoard你能够卓殊便宜的去设置成分属性,而不用去理会背后繁琐的代码;那全体的整套都意味着StoryBoard是前景,那是苹果在用的事物

末段小编想说,越少的代码就代表越少的机遇将bug引入到您的app里面,就就如有500行自定义UI的代码,你能够将它们减少到100行,那样您就足以幸免掉400行没有供给的代码,那样可以削减bug,而且这么尤其不难的去爱惜你的代码,即使您是单独开发,那么使用code或者对你影响十分小,可是即使您从旁人那边接手项目,你就只好深入钻研那个代码到底做了怎样,是怎样设置view的,什么继承了什么样,以及在nib里面有怎样,你依旧不可能使用nib去制造3个全数static
prototype
cells的tableview,你不可能不去成立3个tableview的子类,新建.h、.m、以及nib文件,然后再去成立cell的子类,再新建.h、.m、以及nib文件,然后那个cells在tableview在那之中是单独的,那样你就不得不去新建二个又3个的cell;但是在StroyBoard里面,只必要三个tableview,贰12个cells,然后boom~~,太卓绝了,节省时间,让客户端更简约,更少的bug,而且一切都以在可视化下做到的,你不用去不停的stop、run、stop、run,然后去看您的nib文件以及你的代码,僵尸赢了

Raywenderlich

毋庸置疑的论证,有一点自个儿不住听到的正是,使用可视化的User Interface
Designer,你能够幸免越来越多的代码,能够减小bug,你们怎么看待这些看法?

Cesare Rocchi

额,在autolayout出现此前笔者会同意这么些视角,假设让本身对Interface
Builder实行打分(10分制),在过去作者会给5分,当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、酷派四 、4s、iPadretina,autolayout能够支持大家去做到那几个适配,Nin与StoryBoard都能够让你可视化的去行使autolayout,你能够丰富直观的在显示器上进展示公布局,不过要是去选取code,那将会是一件11分劳累的事情

利用StoryBoard在debug的时候你能够充裕直观的看出,在Xcode5上,你能够预览本人的布局,一旦您转移布局约束,改变设备的尺码,你能够立刻就来看结果,若是您使用code,你就只可以debug、run、debug、run,非凡的麻烦;就个人而言,笔者也不是十分的喜欢autolayout,尽管在Xcode5与iOS7后头有所改善,但依旧不是很好用,那几个我们鞭长莫及,不过无论如何,使用Interface
Builder会好过使用code

Raywenderlich

OK!不错的论据,接下去会不停拓展半个时辰的座谈,Cesare从你最先

Cesare Rocchi

code是十分清晰直观的,你能够写完事后立即运转,然后得出运维结果,你不需求深远到七个不相同的质量编辑器其中,来搞了解这几个变量属性等等是什么样被设置的

最后一点自我想要说的是,Interface
Builder背后的理念是13分不易的,这几个视角是想要让设计师运用来设计UI,不管是Nibs照旧StoryBoard都会让你直观的观看你的app长什么体统,就像在有点时候,你不需求有3个填写着数量的tableview,作为一个设计师,根本就不会供给三个填写着真实数据的tableview,设计师只想要知道app看起来何等,那不光是3个给设计师的工具,更加多的是给这个不想写太多代码的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,就像是ACR-VC,就如一代又一代的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来连接别的东西,你应有每回只处理2个显示器,这样更包容你的Xcode窗口大小,可是StoryBoard占用了太大的空间

司机

我们都明白使用StoryBoard能够分外简单的做出1个不难易行的运用,在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里进来视图与重返视图,你的控制器正是3个scene,所以你能够尤其可视化的对待那几个,你能够精晓的通晓本人会被带到那边去,自定义的view是单身的片段,你能够运用2个nib创建三个自定义的view,然后重用格外频仍,同样要切记,StoryBoard允许你重用你的控制器而不用在StoryBoard里面重复的去创建那么些,你甚至可以使用code来创建,你不应有被界定到此地面去,当你结合nibs去行使StoryBoard的时候会越来越的不错

Tammy Coron

本身也足以经过望着连串的领航部分来管理自个儿的品类,那是自身的首先个视图,那是自作者的第二个视图,等等,笔者必要找到三个很好的理由让本身去采纳StoryBoard,笔者同意关于StoryBoard就是前景的见解,不管我们喜不喜欢,autolayout就是以往的矛头,可是本人的确很难喜欢上StoryBoard

Felipe Laso Marsetti

这边有一个很好的例子,作者二零一八年接班了3个体系,包括了五6贰个ViewController,并且有一大堆的nibs,在自小编起来进献代码在此之前本人只可以去深远在那之中去研讨那几个东西,因为这些项目不是本身写的,这些体系已经做了1-2年了,在刚起首的多少个月笔者一心迷失在那几个项目里面,作者不得不去搞通晓那些nib文件之间的涉嫌,这事实上是老大难堪

而是只要本人有三个StoryBoard,那么万事都将会清晰明了,那会节约习以为常的时刻;所以你应有至少使用StoryBoard来创制app的布局,然后再去具体的创设一些自定义的酷炫UI,接纳专擅一种你喜爱的法门;当您接手贰个大型项指标时候StoryBoard确实会帮你大忙

红衣五叔

笔者参加的花色全数百万行的代码,几百个视图,笔者不知情大家是或不是须求去行使StoryBoard,可是笔者会去品尝一下,你说的很正确

Cesare Rocchi

额,笔者一度有两三年没有去做大型项目了,当自己依然记得那时候的惨痛,比如去处理千丝万缕的结构体,纵然完全使用code来做的门类,要去处理那样那样的结构体也是一件分外费力的事务,其实笔者也一致是贰个依靠于视觉的人,可是作者并不想在Xcode下面以可视化的花样来做项目,作者更爱幸好PhotoShop或然Sketch上边去做这一个事情,做2个非凡的coder,你必要求明白各个东西,那是3个view那是贰个button,这些是或不是越发的灵敏等等,那正是干吗自个儿打开Xcode的时候,笔者期待笔者的率先个视图是1个空手的模版

在自家的上多个档次个中,小编在三个极小的部分应用了NavigationController,不过自个儿添加的是自家自定义的一个NavigationController,那是一个自定义度很高的1个app,在那些项目里面,小编完全看不出哪儿能够行使StoryBoard,笔者都以用代码把一切消除,分外的简要,而且能够很好的采取它们,小编做的都以自定义度很高的app,唯一三个运用到的视图模板就唯有tableview

红衣大爷

在自己的阅历看来,客户平常会给我Photoshop文件,告诉笔者那正是app要看起来的榜样,然后你从头写代码,恐怕还有其余的法子,但是自身觉得写代码是一种轻松的办法

Felipe Laso Marsetti

从自个儿的经验无法明白在客户端合营开发的时候会发生哪些,不过你取得一个Photoshop文件,你得到1个急需文书档案,然后对你说那就是app要看起来的旗帜,然后视图A到视图B是何等的,视图B到视图C又是何等的,把那么些做出来,告诉您定期,然后拜拜

额,你采纳code只怕Nibs来做会很酷,然则你能够运用StoryBoard来做这几个事物,即便是十三分复杂的UI也足以成功;在本人的店堂里面,平常会有自定义UI的急需,大家或者需求接纳非凡多的工具,包涵code甚至是PaintCode,以及其它可以转移可视化的UI的工具,Nibs大概是StoryBoard,能够接纳StroyBoard小编会非常的愉悦,能够看到自身行使了StoryBoard完结了1个有3个的职责

Brian Moakley

大家研讨了autolayout,探讨了StoryBoard,并且今后以为它们正是以后,然则,一年以往,大家兴许又会说别的的东西是鹏程,所以,大家应当再度思考大家的app到底是如何运维的,知道这一个新技巧确实很正确,能够拉长大家的工作效用,然则本身想,了然什么利用code来成功具有事情是很睿智的

Felipe Laso Marsetti

iOS7给了豪门各样各类的火候去品尝StoryBoard,甚至是Nibs,若是您拒绝利用StoryBoard,或然因为你现在会动用一种截然差异于与往年的措施来创造app;既然你今后有1个时机来解脱原来那么麻烦的费用进程还要尝试新的工具以及选择iOS7推动的全新UI,为啥不试一下呢?

红衣大叔

2个很好的尝尝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确实很有必不可少,超过55%人在做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是以后,固然还有不够健全的位置,不过相信苹果会将其做的更是好,
StoryGran Lavidad也会稳步显示出它的魔力

做iOS开发的童鞋都应有会纠结1个题材,那正是在做开发的时候是利用StoryBoard依然使用Nibs又只怕是Code(纯代码流)呢?小编也丰硕纠结这几个题材,明天碰巧在raywenderlich上边看到了多少个大神之间的撕逼,哦不,探究之后,感觉获得良多,于是就将他们座谈的内容整理翻译了弹指间,如有不当之处,还请多多原谅,原录像请戳这里
http://t.cn/zRAb4NF

开始展览阅读

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

讨论

Ray Wenderlich

Ok!现在大家都在线,多谢各位的赶来,今日大家会有多个探讨有关iOS开发的议论,是挑选Storyboards、Nib依然Code,大家有四个志愿者,塞萨尔e
Rocchi代表的是“Code爱好者”,Tammy Coron 代表的是“Nib爱好者”,Felipe
Laso 马尔斯etti代表的是“StoryBoard爱好者”,我们将从Cesare Rocchi起始

Cesare Rocchi

率先,code是老大清晰直观的,你能够直接望着代码,你不必要开辟鸠拙的Nib文件,并且永不深刻钻研然后找出有些扑朔迷离因素到底关联了依旧没有涉及,这几个都很傻;当你在付出三个大型项指标时候那种办法要命的有用;当本身从叁个crazy
guy那里接手2个门类,这一个类别是用StoryBoard恐怕Nibs做的,最终作者会用code重写所用的事物,你能够在StoryBoard可能Nibs设置好全数东西,然而最后你能够用代码重写全数的事态;比如您在三个nib文件之中安装了二个lable,当你运营那些app的时候那几个lable看起来与您设置的不太一致,这是因为别的一人在随后添加了一条龙代码改变了老大lable的习性

Tammy Coron

当听见她(塞萨尔e
Rocchi)如此贬低Nib的时候让笔者怒形于色,笔者当做五个程序媛有相当短一段时间了,小编见过特别多的程序猿喜欢使用code的艺术来支付的;但就作者个人而言,小编是3个格外注重于视觉的人,小编欣赏通过可视化的方法来进行编制程序,所以本身采用使用Nibs;你或许会说选择StoryBoard能够比使用Nibs看到更加多的事物,然而对本人来说,作者并不爱好StoryBoard,因为StoryBoard能做的很单薄,特别是当您在写一个大型项目标时候依然您与别的的人同盟的时候,若是使用StoryBoard你将会把装有的UI都集聚在3个文本之中,那会促成合作变得可怜费劲,合并上也会有很多的麻烦;StoryBoard上还有3个非常的大的难题不怕,它区别意你操作太多的属性,特别是在差别的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,那样您大概就会有四伍十二个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,接下去每一个人都有3个火候为团结的视角展开辩护,那么,Cesare你有怎么着要说的吧?

Cesare Rocchi

额,首先,就算当你想要合并Nib大概StoryBoard的时候,这几乎正是惊恐不已的梦,毫无意义,然后code要做到那个是12分轻松的,作为二个项目高管,小编得以领会地来看今日代码都做了怎么修改,可是像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是13分有必不可少的,有时候你只可以去写一些代码来形成那叁个可视化达成不了的办事,比如自定义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里面,只供给2个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

苔米,Cesare很反感autolayout,你有怎么样想说的吧?

Tammy Coron

本人同样也不是autolayout的狂热听众,笔者会尽量的将autolayout关闭掉,作者在有的连串方面用过autolayout,但本人对autolayout提不起兴趣,你还是能利用Nib而不去采纳autolayout,所以作者觉着他的论证是对事情没有什么益处的,抱歉XD

Raywenderlich

这正是说Felipe你是怎么对待autolayout的吗?

Felipe Laso Marsetti

甭管你喜不喜欢,autolayout会始终存在着,我们将会有两样尺寸的配备亟需去适配,三星GALAXY Tabmini、华为肆 、4s、GALAXY Tabretina,autolayout能够支持大家去达成那么些适配,Nin与StoryBoard都得以让您可视化的去行使autolayout,你能够足够直观的在荧屏上进展示公布局,不过若是去行使code,那将会是一件越发麻烦的政工
运用StoryBoard在debug的时候你能够10分直观的来看,在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前面说了一个僵尸吃大脑的耻笑,听得不是很懂就没翻译了)

Raywenderlich

Awsome!Felipe?

Felipe Laso Marsetti

额,StoryBoard就是鹏程,就像block,就好像A卡宴C,如同一代又一代的Xcode与iOS一样,苹果以后把精力都置身了StoryBoard下边,他们从未在Nibs上边更新太多的东西,他们并未再加新作用进入,你能够锲而不舍运用Nibs也许是code,可是使用StoryBoard你能够节约多量的命宫,你能够在StoryBoard上做出至极复杂的UI,segues、unwind
segues、custom
segues,你居然能够让StoryBoard与Nibs和code一起坐班,更少的bug,你应当去品尝一下
可是你们很多少人依然在运用code和Nibs,因为你们很顽固,你们喜欢老的情势,害怕改变,说实话,作者在一般工作在那之中总是在选择StoryBoard,大家在大型的协作项目中使用它,它总是最趁手的工具
在大多数场合下,就自笔者的经历而言,作者大概是2个血气方刚的僵尸,StoryBoard正是本身的工具,StoryBoard可以达成的事您是足以用Nibs和code做到,但是切记,这是在苹果在WWDC上边建议来的东西,把StoryBoard和Nibs混合起来会做事的很好,这正是苹果在做的事务,StoryBoard便是最佳的工具,所以,请别阻止你协调去尝试这一项美好的新技巧,你或者仅仅只是害怕做出改变,你只需求花一点很时辰间,你就会感受到StoryBoard的美好之处

Raywenderlich

Awsome!多谢各位的发言,那么各位有何样难题想问的吗?

Matthijs Hollemans

若果您把装有的东西都坐落StoryBoard里面,你就须要1次性的弄驾驭这一大堆的东西,笔者认为像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为根基成分的,1个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里进入视图与再次来到视图,你的控制器正是1个scene,所以你能够进一步可视化的待遇这么些,你能够领略的精晓本人会被带到那里去,自定义的view是单身的局地,你能够采取三个nib创建三个自定义的view,然后重用分外频仍,同样要铭记,StoryBoard允许你重用你的控制器而不用在StoryBoard里面重复的去创造那些,你居然能够使用code来创制,你不该被限定到那边面去,当你结合nibs去选拔StoryBoard的时候会特别的优质

Tammy Coron

笔者也足以因此看着品种的导航部分来保管本身的类型,那是本人的率先个视图,那是自笔者的第一个视图,等等,作者须求找到一个很好的说辞让自身去选择StoryBoard,笔者同意关于StoryBoard便是现在的视角,不管大家喜不喜欢,autolayout正是前景的大方向,可是自身实在很难喜欢上StoryBoard

Felipe Laso Marsetti

此地有1个很好的事例,笔者2018年接替了二个门类,包罗了五六十三个ViewController,并且有一大堆的nibs,在自家起来进献代码在此之前本身只得去深远在那之中去探讨那个东西,因为那个种类不是本身写的,那几个类型早就做了1-2年了,在刚开头的多少个月小编一心迷失在那些系列里面,笔者只可以去搞领会那么些nib文件之间的关联,那事实上是拾叁分难堪
而是假若本人有贰个StoryBoard,那么整个都将会清晰明了,那会省去数见不鲜的时刻;所以您应该至少使用StoryBoard来创造app的布局,然后再去具体的创制一些自定义的酷炫UI,选择私自一种你开心的法门;当您接手3个大型项目标时候StoryBoard确实会帮你大忙

红衣小叔

笔者到场的项目拥有百万行的代码,几百个视图,笔者不知情大家是或不是需求去选拔StoryBoard,可是笔者会去尝尝一下,你说的很正确

Cesare Rocchi

额,小编曾经有两三年没有去做大型项目了,当自个儿照旧记得那时候的悲苦,比如去处理千丝万缕的结构体,即使完全使用code来做的品种,要去处理那样这样的结构体也是一件十三分难堪的政工,其实我也同样是2个依赖于视觉的人,可是本身并不想在Xcode上边以可视化的款型来做项目,作者更爱好在PhotoShop只怕Sketch上边去做那个业务,做一个地道的coder,你不可能不要驾驭各个东西,那是2个view那是一个button,那些是否越发的利落等等,那就是为啥自身打开Xcode的时候,笔者期待本身的率先个视图是三个空手的模版
在自作者的上二个品类个中,作者在1个相当小的局地行使了NavigationController,然则小编添加的是本人自定义的一个NavigationController,那是四个自定义度很高的一个app,在这么些类型里面,笔者完全看不出哪儿能够选择StoryBoard,作者都以用代码把全体解决,卓殊的大概,而且能够很好的选定它们,笔者做的都以自定义度很高的app,唯一1个行使到的视图模板就唯有tableview

红衣四叔

在自小编的经历看来,客户平日会给自个儿Photoshop文件,告诉笔者那正是app要看起来的样子,然后你开端写代码,恐怕还有任何的主意,但是本身认为写代码是一种轻松的章程

Felipe Laso Marsetti

从自己的经历无法清楚在客户端同盟开发的时候会发出怎么着,然而你获取三个Photoshop文件,你收获二个要求文书档案,然后对你说那正是app要看起来的楷模,然后视图A到视图B是何许的,视图B到视图C又是什么的,把那些做出来,告诉您定期,然后拜拜
额,你选用code恐怕Nibs来做会很酷,可是你能够动用StoryBoard来做这个东西,就到底万分复杂的UI也落到实处;在本人的铺面里面,平时会有自定义UI的要求,大家兴许须要动用卓殊多的工具,包涵code甚至是PaintCode,以及任何能够生成可视化的UI的工具,Nibs恐怕是StoryBoard,能够利用StroyBoard笔者会分外的美观,能够见见本人使用了StoryBoard完结了一个有1个的职分

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确实很有必不可少,当先57%人在做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

额,作者12分喜欢Nibs,所以小编会选取Nibs,但是一旦要作者在Nibs和code间做二个增选,我会选拔code,因为code能够做其它业务

Raywenderlich

OK!看来各位大多数都是采纳了StoryBoard

总结

就小编个人而言,两种方法本身都尝试过,个人更偏爱选拔code,当然根据不相同的景观小编会结合各自的独到之处举办支付;如上所述,StoryBoard是鹏程,即使还有不够全面包车型大巴地点,可是相信苹果会将其做的尤为好,
Story凯越d也会日趋显示出它的吸引力

拓展阅读

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

相关文章