2012-02-20 85 views
23

我一直在寫iOS應用程序一段時間,並逐漸從完全以編程方式完成UI到密集使用Interface Builder。我現在正在考慮爲我的一些新項目使用新的Storyboarding功能,但我沒有足夠的經驗或知識來計算這樣做的優缺點。 有人可以提供一些關於什麼時候使用Storyboarding的例子或信息,以及何時浪費時間?使用故事板的優缺點?

回答

22

優勢

  • 這很酷 - 設計接口
  • 使用StoryBoardSegues識別導航/莫代爾關係倜儻的方式
  • 如果您的應用支持多種設備,組織不同的好辦法意見(通過故事板文件而不是命名等)
  • 好的原型
  • 原型UITableViewCell可以節省時間,故事板的

缺點

  • 這是一個運行時的功能,所以我相信這是隻有在iOS 5中提供
  • StoryBoardSegues是一種剛性以我的經驗,你可能利用prepareForSegue很多
  • IB一樣,不是很友好的與其他顯示引擎和工具包
  • 使它很難分享設計爲一個單一的視圖或設置的意見 - 你必須發送全有或全無

這些似乎那種膚淺的,我想我沒有給它多想......起初我呱 - 關於故事板,但現在我已經恢復到IB或甚至只是程序化的視圖配置...我使用它們越多,我越喜歡它們,它們越覺得像是噱頭/浪費時間。

編輯

我幾年前寫了這個答案。儘管有些觀點可能不再相關(即它需要iOS 5+),但我仍然像以前一樣留給後人。

過了一段時間,我的意見在故事板上沒有改變。正如其他人所提到的,如果您正在獨立開發一個只有很少視圖進行管理的應用程序,那麼它們就沒有問題,但它們與源代碼管理合作成爲一個真正的痛苦。另外,我更喜歡one-file-one-object,故事板顯然將東西捆綁在一起(IB也是如此,但程度較低)。

如果我寫意味着要保持任何時間長度嚴重的一個應用程序,我將與程序的視圖配置去了IB,但絕對IB在故事板。

+0

++ Great !!感謝與我們分享這一點。 – swiftBoy 2014-06-19 07:34:12

2

我有一個和你類似的背景 - 我開始主要以編程方式構建iOS UI,因爲IB不是真正用戶友好的,但最近決定使用IB越來越多,因爲它更好地設計UI和適用於標準元素。

隨着新的Xcode我切換到故事板,因爲他們提供了應用程序的完整視圖。可以在單個文件中生成完整的UI(包含所有視圖),這可用於原型設計,並可在編寫第一個代碼行之前查看我的同事。這比使用Photoshop或類似工具進行設計要好得多。但是,如果你使用了很多自己的UI元素/控件或者使用不同的「引擎」(cocos2d,OpenGL等)的東西,通常以編程方式生成UI會更好,因爲這些「引擎」並不是真正與IB/Storyboards集成。故事板的

4

與故事板沒有提到的另一個缺點是,合併可能,如果有衝突非常困難甚至是不可能的。

更新:它也發生,我認爲它把邏輯在兩個地方。如果你的segue沒有做正確的事情,那可能是因爲prepareForSegue中的錯誤,或者可能是因爲你錯誤地命名了segue。最終,以編程方式進行事情並不難。

4

在最新的WWDC(2013)中,Apple Devs強烈建議使用故事板並使用IB內置的東西爲您完成大部分代碼,而不是手工編寫,因爲您更有可能避免棄用並利用功能通過自動轉換更新。

孤單的缺點是允許在故事板的git協作的難度,因爲將在幾乎所有提交的衝突。

如果你是獨自程序員,你應該總是用故事板。

2

我有以下從raywenderlich網站上的教程學習情節串連圖板,並有一個關於情節提要很多東西。

這裏是鏈接到網站:在您開始開發應用程序,你可以看到應用程序的所有屏幕

1):故事板的http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

優勢。

2)您可以直觀地看到每個屏幕之間的關係。

3)它可以幫助減少特殊的代碼量在UITableView的情況下,您可以使用原型單元格和靜態單元格來設計故事板中的TableView。

4)如果你必須使用別人的代碼,你可以通過在短時間內觀看故事板來更好地理解應用程序的流程。

5)您可以通過應用故事板中的視網膜形狀因子來設置iPhone 4和iPhone 5的用戶界面,而無需反覆運行應用程序。

6)如果你正在做基於客戶端的工作,那麼有些客戶希望在開始開發之前看到應用的原型,這裏storyboard可以幫助你很多。故事板的

缺點:

1)故事板,您將需要一個大屏幕特別是在iPad上的情況。

2)在將視圖從其他應用程序複製到故事板時,我也遇到了困難。

3)當多個開發人員使用git存儲庫處理同一個項目時,我也遇到了故事板中的問題。

通過閱讀和理解優缺點,您可以判斷自己什麼時候使用故事板。

0

一個字(請勿) 其中除了git的衝突,使得它不可能兩個或兩個以上的人進行這項工作故事板的最大缺點。而且如果項目變得如此之大,並且你有40個屏幕,如果你瘋了足以在任意視圖控制器中移動任何一個像素,你將擁有非常龐大的編譯時間,你可以構建你的應用程序,並使其運行超過5分鐘,當然,不要讓我從歸檔開始,讓一些特定的應用程序。

經過這段痛苦的經歷之後,我完全墮落成古老的金色大xib文件,並在巨大的火焰中刪除了故事板文件。