作者roxx (兩斤阿吉)
看板MacDev
標題[討論] 大家都是怎麼刻 UI 的?
時間Thu Apr 12 14:37:47 2012
剛看到前幾篇推文中有人建議不要用 Storyboard 也不要用 NIB
單純用 code 來實現 UI layout
這應該有這方法的好處,我能想到的就是比較有彈性
而且網路上可看到的程式碼好像也多是用 code 來完成 UI layout 居多
再看過最新的 CS193P 史丹佛的教學影片後
我開始學會怎麼用 Storyboard 的方法來規劃我的 UI layout
Storyboard 的好處是可以用 UIViewController 和 Segue 完成大部份的流程
但有些時候還是會被限制住
像要刻自己的 UIView 時 (沒有 controller),就比較麻煩,這時可能要搭配NIB
新導入 XCode4 的 Storyboard 看來好處是很多的
至少視覺方式的呈現,可以比較直覺的了解程式架構,也減少很多程式碼的撰寫
但如果要做比較多課制化的 UI,又會綁手綁腳
不知道各位 programmers 的習慣如何?
討論看看 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.232.167
1F:推 ryanlei:最近接手一個用code刻UI的project 感想是 04/12 14:41
2F:→ ryanlei:用code會比用滑鼠拉的座標還要精確 04/12 14:41
3F:→ ryanlei:又如果畫面上的元件多數是常常要變換位子、大小、樣貌的 04/12 14:42
4F:→ ryanlei:用GUI來做只適合拉少數固定位置的元件 04/12 14:42
5F:→ ryanlei:然後storyboard規定裝置要iOS 5.0+ 有相容性問題 04/12 14:43
6F:→ roxx:同意,小元件真的很不好拉,回想起之前拉UITableViewCell裡面 04/12 14:53
7F:→ roxx:的小元件,真的很不好對準 04/12 14:53
8F:推 Adonisy:習慣先用 nib....不然之後自已都不好維護 ORZ 04/12 15:48
9F:推 iwayne:我是都用nib. nib透過屬性設定也能排很準。要變化再用code 04/12 16:47
10F:→ reon:明明小元件 通通都可以在Xib裡面設定... 04/12 23:28
11F:→ reon:能用xib做到的本來就盡量要用xib 根本不該把code寫在程式中 04/12 23:29
12F:→ reon:iOS比Android好的地方就是有非常強大的xib 04/12 23:30
13F:→ reon:ViewController盡量是處理程序和邏輯 不應該刻太多UI 04/12 23:32
14F:→ reon:刻太多只是造成後續維護人的痛苦..MVC模式要盡量遵守 04/12 23:32
15F:→ reon:同意樓上講的 要變化的再用code去寫 其他設定請用xib(nib) 04/12 23:40
16F:→ reon:基本上我認為一個好的程式 .m 不要超過5百行.. 04/12 23:42
17F:→ reon:不然要看懂 真的會很浪費時間..當然如果是專門處理CG OpenGL 04/12 23:44
18F:→ reon:或是一些網路大型程式..單一功能太強大的例外.. 04/12 23:45
19F:→ reon:否則能盡量切就切... 04/12 23:46
20F:推 Blueshiva:如果你的App有作多國語言版(其實本來就該作),用xib會很 04/13 00:40
21F:→ Blueshiva:麻煩,尤其是後來程式改版的時候...話雖如此,我還是用 04/13 00:40
22F:→ Blueshiva:xib拉UI....Orz 04/13 00:41
23F:推 iwayne:多國語言時xib會改多份是稍有麻煩,但個人同意reon說法MVC 04/13 08:29
24F:→ iwayne:盡量遵守。有一次寫一個工程計算機ap,為了換一下UI設計, 04/13 08:32
25F:→ iwayne:只重新拉了另一個nib,然後把關連性用線拉一拉,code都沒改 04/13 08:32
26F:→ iwayne:就能正常運行。而且甚至能動態切UI.. 04/13 08:34
27F:推 dreambird:mvc只是要把這三個分開吧,我都用繼承UIView手刻 04/13 18:23
28F:→ dreambird:用拉的,當你nib疊了一堆東西要改不是很麻煩嗎 04/13 18:24
29F:→ reon:疊了很多東西@@?通常1個nib會用多個view 不是很正常? 04/14 01:54
30F:→ reon:不管在iOS還是Android上UI都盡可能在XML(nib)外部設計就知 04/14 01:59
31F:→ reon:繼承當然可以 繼承nib還是可用呀 可以減少很多設定 04/14 02:03
32F:→ reon:你只要把重點另外寫code 程式可讀性和後繼維護速度都可增加 04/14 02:05