cdu*_*dub 55 storyboard xib ios
我是iOS的新手,想知道哪个是最好的学习.我已经在这里阅读了一些答案,但有些人说使用Storyboard会让其他人先说学习XIB.学习XIB有什么好处吗?XIB更容易理解并有助于故事板吗?
hso*_*soi 164
学习这两种方法都有好处.
除了xib方法的历史价值,xib还提供模块化.也许您有一个代码库或希望共享您制作的有用小部件.采用xib方法将有助于共享和重用.
xib方法还允许您在自己的代码方面具有更大的灵活性.例如,iOS 5包含一个bug UITableView
和Accessibility/VoiceOver支持的错误,尽管有其他文档,但会导致-dequeueReusableCellWithIdentifier:
返回nil
(有关详细信息,请参阅此博客文章).从xib动态加载表视图单元提供了解决bug的能力.
虽然Storyboard中的表格和表格单元支持很棒,并且支持大多数人在表格中需要做的事情,但有时你必须在线条外面进行着色,你可能需要许多不同的单元格,而且,再次从xib动态加载可以是你的解决方案
Storyboard的一大优势是能够查看整个应用程序的GUI流程.缩小,你可以看到一切互连和流动.使用xibs,虽然模块化很好,但想象一切如何连接和流动更加困难.对于您自己来说,这可能是一项非常有用的功能,或者如果您有更大的团队可以与之分享,则允许其他人查看应用的流程.
这两种方法都很有价值,而且两者都很有用,因此您可以选择最适合您手头任务的工具.
更新2014-10-06 - 自从我写完以上内容后,我参与了更多项目.一些使用xib,一些可以使用故事板.
故事板已经成熟了很多(我们现在正在使用Xcode 6),并且它们非常适合它们.我真的很喜欢在一个xib方法中更复杂的故事板中可以做更多的事情.几个例子:
一个是在使用时,UITableView
或者UICollectionView
您可以直接在故事板中使用原型单元.很多简单易用的设置,大部分繁重的工作都可以在故事板中使用,代码更少.这很好.尝试在xib方法中做到这一点肯定是可行的,但还有很多工作要做到这一点.
另一个是你可以很好地在UIViewController
s与常规segue 之间转换然后返回unwind segues.在故事板中,只需极少的代码.它非常方便.
但是仍然为我杀死故事板的一件事是尝试在协作环境中使用它们.它不会很好地合并.在某些方面,即使你在一个> 1人的团队中工作也不行.如果您自己利用版本控制,为您自己的个人工作流程使用良好的分支和合并模型,可能需要在某个分支中进行某些更改,而这些更改必须进入另一个分支,并且哦痛苦.对我而言,这就是杀死故事板的原因.
随着时间和工作的发展,我自己找到的是故事板非常适合原型设计.将事情快速推进的能力是故事板的巨大好处.使用它们的速度很快.但速度是成本.当谈到为某个项目编写"真实"代码时,我只会坚持使用xib,因为虽然它可能是更多的工作,但它是一种更灵活的路线,在大型团队或更长时间内效果更好.
更新2015-04-07另一个更新,因为过去几个月的项目迫使我使用故事板,这提供了更多的见解.
首先,有些事情会强制要求采用一种方法.例如,显然在使用xib中的大小类时存在一些边缘情况错误,这些大小类在故事板中不存在同样的事情.因此,如果你受到虫子的影响,这可能会迫使你的手一个方向或另一个.另一个是要记住,故事板通常在UIViewController
关卡上工作,所以如果你需要做一些像加载UIView
或UICollectionViewCell
加载的东西,那么xib可能会更好.
其次,我不知道为什么一开始我没有想到这一点,但没有什么需要你为你的整个项目使用一个单一的故事板!我认为故事板的本质使人们能够以这种方式吸引人,但我们必须记住(我所知道的)没有任何要求.
我发现效果很好的是通常每个故事板接近每个"视图分组".也就是说,通常你的ViewControllers往往是孤立的,每个故事板(或xib)最多只有1个.但是你可能会遇到两个密切相关的ViewControllers,将它们放在同一个故事板中是有意义的,特别是因为你可以很容易地将它们挂在它们之间,比如segue.
多个故事板的主要优势是什么?团队合作.这样Fred可以在他的故事板上工作,而Wilma可以在她的故事板上工作,并且没有强烈的担心合并问题或工作协调!多个故事板(通常每个故事板一个ViewController)的使用对于在多人开发团队中使用故事板是一个巨大的帮助.
很明显,Apple希望我们更喜欢故事板,而现在我更多地接受它们.使用多个故事板,但在需要时仍然使用xib,现在工作得相当好.
更新2015-09-21既然Apple发布了Xcode 7,那么采用故事板就更有理由了,因为Apple正在努力克服这些缺点.
最重要的改进是故事板引用,它允许您在一个故事板中创建对另一个故事板的引用.这很简单,现在你可以有跨故事板(进入和退出).我已经在新项目上使用了几次,这只是一种乐趣.
另一个改进是您可以UIView
在故事板中创建独立类.然而,在撰写本文时,我的结果却是喜忧参半.简单的情况可以解决,但一些更"复杂"的东西没有.例如,我有UIViewController
一个UITableView
内部.因为它是一个包含5个静态单元格的简单表格,所以我只是将5 UITableViewCell
s作为故事板中ViewController的一部分进行实例化.似乎工作,但在运行时,实际上没有任何东西会加载和显示; 将UITableViewCell
s 移动到xib中,一切正常.我不确定我做错了什么或者它可能是什么,所以YMMV.但即便如此,即使只是一些怪癖,我肯定苹果会解决它们,然后另一个对故事板的障碍将会下降.我会说,如果你需要这样的支持,你应该尝试一下,看看它是如何适合你的.有很大的希望.
越来越多的故事板正在变得非常出色.
rob*_*off 72
你可以用故事板做一些你不能用笔尖做的事情.故事板允许您在视图控制器之间创建分段,并允许您就地设计表格视图单元格.
你可以用一个你不能用故事板做的笔尖做的事情.在nib中,您可以创建对File的Owner占位符的引用.您可以创建多个顶级视图,编辑它们,并在它们之间创建连接. 请参阅此答案,了解您为什么要这样做的示例.您可以添加外部对象占位符(很少使用的功能).
故事板的缺点是它们将一堆不同的,松散相关的对象收集到一个大文件中.如果您正在与多个开发人员合作开发一个项目,那么如果您使用的是故事板,那么与使用xib文件相比,您更有可能遇到合并冲突.
你肯定应该在某些时候了解笔尖.无论您是想从头开始还是从故事板开始,都可能不太重要.只需找到您喜欢的一些教程,并使用他们使用的任何类型的文件(笔尖或故事板)来完成它们.
归档时间: |
|
查看次数: |
30864 次 |
最近记录: |