1. 程式人生 > >Swift開發--Storyboard的使用教程

Swift開發--Storyboard的使用教程

如果App中包括很多不同的頁面,使用Storyboard可以幫你減少實現頁面間跳轉的膠合程式碼。過去的開發者對應每個檢視控制器分別建立介面設計檔案(即“nib”或“xib”檔案),現在,只要一個Storyboard就可以包攬所有檢視控制器的介面設計和他們之間的關聯。

Storyboard有很多優點:

  • 使用Storyboard可以更好地瞭解App中所有的檢視以及它們之間的關聯的概況。掌控全域性更加容易,因為所有的設計都包含在一個檔案中,而不是分散在很多單獨的nib檔案中。

  • Storyboard可以描述不同檢視之間的過渡,這種過渡叫做“segue”(譯註:意為“轉場”,而“Storyboard”原意為“分鏡”,均源自電影術語),你可以直接在Storyboard中通過連線不同的檢視控制器來建立轉場。多虧有了轉場,打理介面的程式碼比以前要少了。

  • Storyboard通過新的原型表項(prototype cell)和靜態表項(static cell)特性,讓處理表檢視(table view)的工作更加輕鬆。幾乎完全可以在Storyboard編輯器裡搞定表檢視的設計,同樣也減少了程式碼量。

  • Storyboard使自動佈局(Auto Layout)更易用。自動佈局功能可以讓你通過介面元素之間的數學關係定義來確定元素的位置和尺寸,極大簡化了不同尺寸螢幕的適配工作。自動佈局不在本教程範圍之內,若想了解更多,請參閱自動佈局入門

如果你非常討厭Interface Builder,或者推崇用程式碼搞定所有介面的話,Storyboard可能不適合你。個人主張是程式碼能少寫就少寫,特別是UI程式碼,所以Storyboard簡直就是為我準備的一把利器。

如果你想繼續使用nib,那就繼續用吧,要知道Storyboard裡是可以使用nib的,兩者並非互斥關係。

效果圖:

1、開啟Xcode,建立新專案,語言選擇swift。

2、在當前Storyboard的 File inspector(檔案檢查器) 中禁用Auto Layout和Size Classes。

3、在Main.storyboard 中把原先的檢視控制器刪掉。

4、把一個 Tab Bar Controller(分頁欄控制器) 從物件庫拖到面板中。點選空白區域可以放大縮小檢視。

5、執行。這時會發現報錯。

Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?

未設定入口,也就是剛才刪除最先使用的那個場景之後沒設定初始檢視控制器。為解決問題,選中這個分頁欄控制器,然後在 Attributes Inspector(屬性檢查器) 中選定 Is Initial View Controller 。

6、再次執行ok了。