使用自動佈局滾動內容
該專案是一個完全在 Interface Builder 中完成的自包含示例。你應該能夠在 10 分鐘或更短的時間內完成它。然後,你可以將你學到的概念應用到你自己的專案中。
https://i.stack.imgur.com/L4puB.gif
在這裡我只使用 UIView
s,但它們可以代表你喜歡的任何檢視(即按鈕,標籤等)。我還選擇了水平滾動,因為這種格式的故事板截圖更加緊湊。但是,垂直滾動的原理是相同的。
關鍵概念
UIScrollView
應該只使用一個子檢視。這是一個’UIView’,用作內容檢視,用於儲存你想要滾動的所有內容。- 使內容檢視和滾動檢視的父級具有相等的水平滾動高度。 (垂直滾動的寬度相等)
- 確保所有可滾動內容都具有設定的寬度並固定在所有側面。
開始一個新專案
它可以只是一個單一的檢視應用程式。
故事板
在這個例子中,我們將建立一個水平滾動檢視。選擇 View Controller,然後在 Size Inspector 中選擇 Freeform。製作寬度 1,000
和高度 300
。這只是讓我們在故事板上新增了可以滾動的內容。
新增滾動檢視
新增 UIScrollView
並將所有四個邊都固定到檢視控制器的根檢視。
新增內容檢視
將 UIView
作為子檢視新增到滾動檢視。*這是關鍵。*不要嘗試在滾動檢視中新增大量子檢視。只需新增一個 UIView
。這將是你要滾動的其他檢視的內容檢視。將內容檢視固定到四個方面的滾動檢視。
相等高度
現在,在文件大綱中,Command 單擊內容檢視和滾動檢視的父檢視,以便同時選擇它們。然後將高度設定為相等(控制</ kbd 從內容檢視拖動到滾動檢視>)。*這也是關鍵。*因為我們是水平滾動,滾動檢視的內容檢視將不知道它應該有多高,除非我們以這種方式設定它。
注意:
- 如果我們將內容垂直滾動,那麼我們將內容檢視的寬度設定為等於滾動檢視的父寬度。
新增內容
新增三個 UIView
s 並給它們所有約束。我用了 8 點的餘量。
約束:
- 綠色檢視:固定頂部,左側和底部邊緣。寬度為 400。
- 紅色檢視:固定頂部,左側和底部邊緣。使寬度為 300。
- 紫色檢視:固定所有四個邊緣。無論剩餘空間是什麼,都要做寬度(在這種情況下為 268)。
*設定寬度約束也是關鍵,*以便滾動檢視知道其內容檢視的寬度。
成品
就這樣。你現在可以執行你的專案。它的行為應該與此答案頂部的滾動影象相似。