我不熟悉Xcode中的Storyboards的實踐,當我只使用xib文件進行佈局時,我遇到了一個問題,試圖執行我使用的操作。如何將多個獨立視圖添加到單個故事板場景?
有時,當我製作視圖時,它將需要一個或多個獨立於主視圖佈局的小二級視圖。通常這些較小的視圖就像輸入字段的自定義鍵盤,或者帶有幾個按鈕的工具欄,我將它們附加在鍵盤上(例如,在數字鍵盤鍵盤上添加「完成」按鈕,因爲它們由於某種原因缺少一個)。
當我使用xib文件來做到這一點時,我可以在畫布的任何位置拖動一個新視圖,並且它會在那裏「浮動」,而與xib中的其他視圖無關。然後,我可以設置它自己的佈局,並將按鈕連接到主視圖所連接的同一視圖控制器的插座屬性。
現在,當我使用故事板來執行視圖佈局而不是xib文件時,無法在畫布上隨意放置視圖。故事板更受限制/組織,並且每個獨立視圖似乎都必須處於它自己的「場景」中。所以當我嘗試做我在xib文件中做的事情時,我遇到了一個問題。它只允許我在畫布上放置視圖控制器,而不是普通的舊視圖。
我試過將視圖直接拖到「View Outline」左側面板中,以便我可以在視圖層次結構中將其放在我想要的位置;但是,當這個額外的視圖不在主視圖內時,我無法在屏幕上的任何地方看到它。也許最好的爲什麼解釋這是與圖像。
這是我在廈門國際銀行文件通常做:
在XIB文件中可以看到兩種觀點獨立存在的(一個沒有嵌套在另一個裏面)。在這個例子中,我將最終將視圖控制器/文件所有者中的額外視圖連接到outlet屬性。然後在「viewDidLoad」裏面,我將它分配給UITextField的「.inputView」屬性,以便它用具有日期選擇器,標籤和完成按鈕的視圖替換鍵盤。
這裏是我的(失敗)的嘗試看起來像一個Storyboard文件:
所以我試圖讓其他視圖進入同一個場景。我在故事板文件中發現,任何不嵌套在主視圖中的東西都不會顯示在任何位置。所以我無法在我的額外視圖文件中設置任何內容,因爲我無法在屏幕上看到它;它僅在「視圖大綱」面板中可見。這使得我以前在xib文件中做的事情不再可能。
我現在想出的另外一種方法是爲每個人添加一個單獨的xib文件,這對我來說似乎很愚蠢,因爲我認爲Storyboards可以消除需求因爲每個視圖都有一個xib。舊的方式似乎很簡單,那麼我現在該做什麼?也許我正在以完全錯誤的方式去解決這個問題。任何幫助,將不勝感激。
從我的理解,故事板更多地是從控制器到控制器的流程。在我目前的應用程序中,我仍然使用xibs來定製視圖。你可以嘗試的一個想法是在主視圖之外的控制器中放置第二個視圖。模擬的控制器尺寸不是它們將以任何方式顯示的那樣,因此您可以儘可能多地擴展xib中的每個控制器以編輯它。 – mitrenegade 2014-09-04 19:12:03
任何解決方案? – vivin 2016-02-08 21:37:30