有没有觉得,storyboard有时候不是很方便,因为所有的东西都要放在一个viewcontroller下

2013-10-19 21:06:44 +08:00
 refresh
一个复杂的view,像xib,我可以分开成多个view,然后很分散去布局。但在storyboard下,必需要放到viewcontroller下,结果就是非常乱。

或者是我不知道,有什么好办法没有?
13653 次点击
所在节点    iDev
29 条回复
tangzs
2013-10-19 21:24:02 +08:00
storyboard只是提供多一种选择;
一个应用可以多个storyboard,比如将可重用的一个模块(多个ViewController)做一个storyboard,管理起来还是感觉比以前好吧;
也可以和以前的xib混用的,所以旧代码拿过来也没压力。
PrideChung
2013-10-19 22:19:55 +08:00
我已经退回到xib了,view复用比较方便。写测试的时候为了从storyboard里面取一个view controller出来必须要给个名字,太麻烦了。
alexrezit
2013-10-19 22:39:15 +08:00
我觉得... sb 这种东西... 实在不是完美主义者能用的...
11
2013-10-19 22:48:55 +08:00
我是觉得 segue 管理起来好麻烦;
而且 storyboard 很卡;
小屏幕下完全无法接受;
楼主说的 subview 也是个问题。
angelface
2013-10-19 23:01:45 +08:00
除非非常简单的ui, 否则全部代码处理,无论是storyboard还是xib都不用,scm太麻烦
txx
2013-10-19 23:01:53 +08:00
subView 可以用 container 不过 sb 在 XCode 5 上卡成狗啊。。。。。
ewangke
2013-10-19 23:04:40 +08:00
@angelface Xcode 5的xib SCM已经不是问题了
一直用xib,不用storyboard
PrideChung
2013-10-19 23:12:02 +08:00
@11 segue的时候有90%的情况要传一些参数,于是又得去prepareForSegue:里面判断一下identifier,实在是有够麻烦的。而且如果你的App自定义的东西比较多的话,有些地方无法用segue,storyboard很多时候根本不能显示应用真正的流程。做Web开发的时候也没什么storyboard之类的东西,都是一个个view地写过来的,也没发现有什么搞不清流程的情况,我现在觉得storyboard产生的问题比解决的问题还多。 storyboard最有用的功能就是静态的table view了,可以单独用一个storyboard来存放。
11
2013-10-19 23:17:57 +08:00
@PrideChung 对啊,如果用 storyboard 控制流程,那么竟然还有个很 bug 的 method:

performSegueWithIdentifier:sender:

这样完全可以调用其他不连接起来的 view 了。

那个 static table view 的确很有用。
ShengjiaWANG
2013-10-19 23:29:16 +08:00
之前苦于SB多人协作太难弄,所以我一般是能代码就纯代码搞定。不过现在SB似乎在这方面好很多了,而且纯代码上auto layout似乎有点苦啊。。。
refresh
2013-10-19 23:42:27 +08:00
@ShengjiaWANG 我以前也是用手写代码,现在改storyboard和xib,非常好,推荐
@11 我以为卡是我电脑问题,8g内存还凑合

@PrideChung 这个地方也有点麻烦
@txx 没太明白
xuan_lengyue
2013-10-20 01:04:24 +08:00
Storyboard 一个很强大的功能是 static tableview cell,这个找不到其他解决方案。
其实 Storyboard 和 xib 结合能解决大部分的问题。
PrideChung
2013-10-20 01:24:09 +08:00
@11
storyboard可以切分成几个小的,没那么占内存打开也比较快,但是因为无法跨 storyboard 进行 segue,只能按老一套的来,segue的作用就没了。如果 segue 不能真正地显示出整个应用的流程,反而可能会误导人,我觉得还不如不用。而且切分了以后很麻烦的一点是你找一个view controller还得先想想放在哪个 storyboard 里面了。

@ShengjiaWANG
Xcode 5 的 xib 和 storyboard 的格式都改了,简短了许多而且相当可读,合并冲突不成问题。如果花点时间了解一下格式手写 xib 的代码也是有可能的,文档标记语言比起编程语言更适合用来描述界面。

手写界面还用 Auto Layout的话代码量多好多,还是用 Xcode 5 的 IB 吧,可以给你很多有用的提示,也不会强制给你加一堆constrain。 Xcode 4 的是渣渣别提了。

另外 Auto Layout 真的没必要作为默认,有些简单的布局Spring & Structs 更方便。xib 比 storyboard 好的另外一点是 Auto Layout 的设置可以逐个 xib 分开来设置,需要再启用。storyboard 只能一刀切。

@refresh
我现在是以 xib 为主,偶尔用 storyboard 画画 settings 和 about 界面的table view,觉得挺好的。

对了,用xib有一点很爽的,创建一个view controller其实无需指定xib的名字的。只要你的xib命名跟view controller一样(除后缀名),然后
[[ViewController alloc] init]
iOS会自动找到对应的xib,对于iPad的xib,写成 ViewController~ipad.xib 就行了。
ShengjiaWANG
2013-10-20 02:29:17 +08:00
@PrideChung 我几乎完全同意你说的,合理的结合才是王道,看来现在唯一阻碍我的就是惰性了。习惯了代码控制一切,对Storyboard和xib一直有抵触情绪,不是很熟悉,需要重新适应。

@xuan_lengyue 嗯,我是该尝试一下了。
so898
2013-10-20 03:50:02 +08:00
曾经试过xib+SB+代码混写……
结论是还是代码顺手,其他两个都能把我的电脑拖死机
果然就算是rMBP顶配也是渣渣啊
austinchou0126
2013-10-20 10:06:42 +08:00
最近刚好也在纠结这个问题,感谢@PrideChung
refresh
2013-10-20 11:57:51 +08:00
@ShengjiaWANG 我也觉得auto layout挺鸡肋的,比原来那个layout是多了一些功能,但我每次编译都要看到100多个警告,基本上都是autolayout的问题。

@so898 sb慢是一个大问题,代码效率真心不高,特别是改动的时候,一个项目中有一半以上的代码在处理布局。我最近几个项目完全改成了sb或xib,感觉还是不错的,刚用有点不爽,那是因为离开的舒适区的一种自然反应。
PrideChung
2013-10-20 15:47:27 +08:00
@refresh Auto Layout不鸡肋,只是对于简单的布局来说是杀鸡用牛刀,所以像我上面说的用 xib 来做界面 ,对于需要复杂布局的 view 单独启用 Auto Layout 最合适。
xsown
2013-10-20 16:59:42 +08:00
等到明年水果推出传说中6寸 iPhone(另一说是4.8寸?)的时候 autolayout 就显神通了
refresh
2013-10-20 17:21:02 +08:00
@xsown autolayout概念很好,但只是不好操作,复杂一点的布局弄死人了,复杂的布局应该可以分开设计,这点可以学习CorelDarw或者AI,组合图层点进去之后可以进入到具体的图层进行设计。
@PrideChung 复杂的用xib是一个不错的做法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/86141

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX