新聞中心
概覽
SwiftUI 提供廣泛的容器視圖,用于視圖的分組和重復。一些容器專用于打造結構和布局,例如 Stack 視圖、惰性 Stack 視圖和 Grid 視圖。另一些容器,例如 List 和 Form,也采用系統(tǒng)標準的視覺效果和交互。

創(chuàng)新互聯(lián)公司公司2013年成立,先為共和等服務建站,共和等地企業(yè),進行企業(yè)商務咨詢服務。為共和企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
為 App 用戶界面的每個部分選擇最合適的容器視圖,是一項需要學習的重要技能;從確定相鄰兩個視圖的位置,到使用數(shù)百種元素創(chuàng)建復雜的布局,它能在方方面面為你提供幫助。
對視圖集合進行分組
Stack 視圖是 SwiftUI 中最原始的布局容器。利用 Stack 可以將視圖集合按水平線或垂直線分組,或將視圖相互疊放。
使用 HStack (英文) 可以將視圖置于水平線上,使用 VStack (英文) 可以將視圖置于垂直線上,而使用 ZStack (英文) 則可以將視圖相互疊放。然后,合并 Stack 視圖以構建更為復雜的布局。這三種 Stack 及其對齊和間隔屬性、視圖修飾符與 Spacer (英文) 視圖相結合,可以實現(xiàn)極大的布局靈活性。
你通常使用 Stack 視圖作為其他容器視圖中的構建塊。例如,List (英文) 通常包含 Stack 視圖,你用它來布置每行中的視圖。
有關使用 Stack 視圖布置視圖的更多信息,請參閱“使用 Stack 視圖構建布局”。
重復視圖或視圖組
你還可以使用 HStack (英文)、VStack (英文)、LazyHStack (英文) 和 LazyVStack (英文) 來重復視圖或視圖組。在 ScrollView (英文) 中放置一個 Stack 視圖,這樣你的內容便可以擴展到其容器的邊界之外。用戶可以同時水平滾動、垂直滾動或雙向滾動。
堆棧視圖和惰性堆棧具有相似的功能,可能給人感覺它們能夠互換,但是,它們在不同情況下有各自的優(yōu)勢。堆棧視圖會一次性載入所有子視圖,布局性能快且可靠,因為系統(tǒng)在載入每個子視圖時就知道它們的大小和形狀。惰性堆棧會為了性能而損失一定程度的布局正確性,原因是系統(tǒng)僅在子視圖可見時才會計算它們的幾何結構。
在選擇要使用的堆棧視圖類型時,請始終先選擇標準堆棧視圖,并且僅在對代碼進行性能分析后證明值得提升性能時,才應切換到惰性堆棧。有關惰性堆棧視圖以及如何衡量 App 的視圖載入性能的更多信息,請參閱“創(chuàng)建高性能的可滾動堆?!?。
在二維布局中放置視圖
要同時以水平方式和垂直方式布置視圖,請使用 LazyVGrid (英文) 或 LazyHGrid (英文)。若要布置自然顯示在正方形容器中的內容 (例如,圖像圖庫),網(wǎng)格是一個非常好的容器選擇。另外,若要放大用戶界面布局以在較大的設備上顯示,網(wǎng)格也是一個不錯的選擇。例如,聯(lián)系信息目錄可能適合以列表或垂直堆棧的形式顯示在 iPhone 上,但是,如果將目錄放大以在更大的設備 (例如 iPad 或 Mac) 上顯示時,采用網(wǎng)格布局的形式可能更自然。
與堆棧視圖一樣,SwiftUI 網(wǎng)格視圖并不包含固有的滾動視口;如果相關內容可能超出可用的空間,應將它們置于一個 ScrollView (英文) 中。
顯示數(shù)據(jù)集并與之交互
SwiftUI 中的 List (英文) 視圖在概念上與 LazyVStack (英文) 和 ScrollView (英文) 的組合類似,但默認情況下會在內容元素之間和周圍應用適合平臺的視覺樣式。例如,在 iOS 上運行時,List (英文) 的默認配置會在各行之間添加分隔線,并且如果 List 包含在 NavigationView (英文) 里,它會給具有導航功能的內容元素繪制詳情指示符。
List (英文) 視圖還支持為常見任務 (例如,插入、重新排序和移除項目) 提供與平臺相對應的交互。例如,通過將 onDelete(perform:) (英文) 修飾符添加到 List (英文) 中的 ForEach (英文),可以實現(xiàn)系統(tǒng)標準的輕掃以刪除交互。
與 LazyHStack (英文) 和 LazyVStack (英文) 一樣,SwiftUI List (英文) 中的行也會以惰性方式載入,沒有對應的非惰性載入方式。List 本身會在必要時滾動,你不需要將它們包裝在 ScrollView (英文) 中。
為數(shù)據(jù)輸入組合視圖和控件
使用 Form (英文) 可以組合系統(tǒng)標準控件,構建數(shù)據(jù)輸入界面、設置或偏好設置窗口。
與所有 SwiftUI 視圖一樣,表單以平臺適用的方式顯示其內容。請注意,Form (英文) 中的控件布局可能因平臺不同而存在很大的差異。例如,在 iOS 上,Form (英文) 中的 Picker (英文) 控件會添加導航,從而在單獨屏幕上顯示選擇器的選項,而在 macOS 上,同一個 Picker (英文) 控件會顯示彈出式按鈕或一組單選按鈕。
文章題目:創(chuàng)新互聯(lián)IOS教程:為你的內容選擇容器視圖
本文URL:http://m.fisionsoft.com.cn/article/cogohjp.html


咨詢
建站咨詢
