古詩詞大全網 - 成語故事 - 為什麽iOS開發不需要Storyboard

為什麽iOS開發不需要Storyboard

隨著iOS開發發展至今,可以說在UI制作上大家逐漸分化為了三種主要流派:使用代碼手寫UI及布局;使用單個xib文件組織viewController或者view;使用StoryBoard來通過單個或很少的幾個文件構建全部UI。

手寫代碼

代碼UI可以說具有最好的代碼重用性。如果妳的目的是寫壹些可以高度重用的控件提供給其他開發者使用,那毫無疑問最好的選擇應該是使用代碼來完成UIView的子類。這樣進壹步的修改和其他開發者在使用時,都會方便不少。使用代碼也是最為強大的,會有xib或者StoryBoard做不了的事情,但是使用代碼最終壹定能夠完成所要的需求。

XIB

其實IB和xib是從iOS SDK初次面世開始就是捆綁在開發者工具套裝內的內容了,而到了Xcode 4之後更被直接集成到了Xcode中成為了IDE的壹部分。xib設計的壹大目的其實是為了良好的MVC:壹般來說,單個的xib文件對應壹個ViewController,而對於壹些自定義的view,往往也會使用單個xib並從main bundle進行加載的方式來載入。IB幫助完成view的創建,布局和與file owner的關系映射等壹些列工作。對於初學者來說,牢記xib的文件都是view的內容,有助於建立起較好的MVC的概念,從而在開發中避免或少走彎路。

最大的問題在於xib中的設置往往並非最終設置,在代碼中妳將有機會覆蓋妳在xib文件中進行的UI設計。在不同的地方對同壹個屬性進行設置,這在之後的維護中將會是噩夢般的存在。因為其實IB還是有所局限的,它沒有邏輯判斷,也很難在運行時進行配置。

StoryBoard

簡單理解來說,可以把StoryBoard看做是壹組viewController對應的xib,以及它們之間的轉換方式的集合。在StoryBoard中不僅可以看到每個ViewController的布局樣式,也可以明確地知道各個ViewController之間的轉換關系。

現在StoryBoard面臨的最大問題就是多人協作。因為所有的UI都定義在壹個文件中,因此很多開發者個人或企業的技術負責人認為StoryBoard是無法進行協作開發的,其實這更多的是壹種對StoryBoard的陌生所造成的誤解。雖然Apple並沒有在WWDC明確提及,但是沒有人規定整個項目只能有壹個StoryBoard文件。

現在會有壹些對於StoryBoard性能上的擔憂。因為相對於單個xib來說,StoryBoard文件往往更大,加載速度也相應變慢。