- SwiftUI 教程
- SwiftUI - 首頁
- SwiftUI - 概述
- SwiftUI vs UIKit
- SwiftUI 環境
- SwiftUI - 環境設定
- SwiftUI - 基本元件
- SwiftUI - 建立第一個應用程式
- SwiftUI 檢視
- SwiftUI - 檢視
- SwiftUI - 自定義文字檢視
- SwiftUI - 自定義影像檢視
- SwiftUI - 堆疊
- SwiftUI 繪製形狀
- SwiftUI - 形狀
- SwiftUI - 繪製線條
- SwiftUI - 繪製矩形
- SwiftUI - 繪製圓角矩形
- SwiftUI - 繪製三角形
- SwiftUI - 繪製圓形
- SwiftUI - 繪製星形
- SwiftUI - 繪製多邊形
- SwiftUI - 繪製餅圖
- SwiftUI - 使用內建形狀
- SwiftUI - 文字
- SwiftUI - 文字檢視
- SwiftUI - 文字輸入和輸出
- SwiftUI - 顏色
- SwiftUI - 顏色
- SwiftUI - 顏色選擇器
- SwiftUI - 漸變
- SwiftUI - 調整顏色
- SwiftUI - 效果
- SwiftUI - 效果
- SwiftUI - 混合效果
- SwiftUI - 模糊效果
- SwiftUI - 陰影效果
- SwiftUI - 懸停效果
- SwiftUI - 動畫
- SwiftUI - 動畫
- SwiftUI - 建立動畫
- SwiftUI - 建立顯式動畫
- SwiftUI - 多個動畫
- SwiftUI - 轉場
- SwiftUI - 非對稱轉場
- SwiftUI - 自定義轉場
- SwiftUI - 圖片
- SwiftUI - 圖片
- SwiftUI - 圖片作為背景
- SwiftUI - 旋轉圖片
- SwiftUI - 媒體
- SwiftUI - 檢視佈局
- SwiftUI - 檢視佈局
- SwiftUI - 檢視大小
- SwiftUI - 檢視間距
- SwiftUI - 檢視填充
- SwiftUI - 列表和表格
- SwiftUI - 列表
- SwiftUI - 靜態列表
- SwiftUI - 動態列表
- SwiftUI - 自定義列表
- SwiftUI - 表格
- SwiftUI - 表單
- SwiftUI - 表單
- SwiftUI - 將表單分成多個部分
- SwiftUI 有用資源
- SwiftUI - 有用資源
- SwiftUI - 討論
SwiftUI - 檢視佈局
檢視佈局是 SwiftUI 最重要和最強大的功能。佈局負責如何在應用程式的使用者介面中排列和顯示多個檢視。眾所周知,SwiftUI 使用宣告式語法,因此我們只需要描述 UI 的佈局,框架將負責渲染。
SwiftUI 提供了各種預定義佈局以及自定義佈局,透過這些佈局我們可以建立佈局。它還提供各種預定義修飾符,可以幫助我們增強 UI 中佈局的外觀。
SwiftUI 中的佈局型別
SwiftUI 支援各種內建佈局,使用它們我們可以輕鬆地為應用程式的使用者介面建立佈局。我們還可以將它們混合搭配以建立應用程式的新佈局。以下是 SwiftUI 支援的一些預定義佈局:
堆疊佈局
這是 SwiftUI 中最常用的佈局。它使用 HStack、VStack 和 ZStack 將子檢視水平、垂直或分層排列。HStack 將檢視水平排列,VStack 將檢視垂直排列,而 ZStack 將檢視分層排列,這意味著一個檢視位於另一個檢視的頂部。
語法以下是語法:
// For VStack
VStack{
//code
}
// For HStack
HStack{
//code
}
// For ZStack
ZStack{
//code
}
示例
以下 SwiftUI 程式使用堆疊佈局:
import SwiftUI
struct ContentView: View {
var body: some View {
VStack{
Text("Hello Swift")
Text("Hello Swift")
}
HStack{
Text("Learn Swift")
Text("Learn Swift")
}
ZStack{
Rectangle()
.frame(width: 100, height: 70)
Text("Swift").font(.title2).foregroundStyle(.white)
}
}
}
#Preview {
ContentView()
}
以下是輸出:
網格佈局
網格佈局是一種特殊的容器型別,它使用 GridRow 結構在二維佈局中排列指定的檢視。例如,第一個檢視將顯示在網格的第一列中,第二個檢視將顯示在網格的第二列中,依此類推。網格佈局的工作方式與將 HStack 例項包裝在 VStack 例項中的方式非常相似。
語法以下是語法:
Grid{
GridRow{
//code
}
}
示例
以下 SwiftUI 程式建立網格佈局。
import SwiftUI
struct ContentView: View {
var body: some View {
@State var result : String = ""
Text("Calculator").font(.title)
TextField("Enter your number", text: $result)
Grid{
GridRow{
Text("AC")
Text("+/-")
Text("%")
Text("/")
}
GridRow{
Text("7")
Text("8")
Text("9")
Text("x")
}
GridRow{
Text("4")
Text("5")
Text("6")
Text("-")
}
GridRow{
Text("1")
Text("2")
Text("3")
Text("+")
}
GridRow{
Text("0")
Text(".")
Text("=")
}
}
}
}
#Preview {
ContentView()
}
以下是輸出:
列表佈局
列表佈局用於在垂直可滾動的列表中排列多個檢視,其中每個子檢視都位於列表的每一行中。它可以很好地與靜態和動態檢視一起工作,並且還具有各種 UI 控制元件,例如按鈕、開關、步進器等,使列表更具互動性。
語法以下是語法:
List{
//code
}
示例
以下 SwiftUI 程式建立列表佈局。
import SwiftUI
struct ContentView: View {
@State private var value = false
var body: some View {
VStack{
Text("Setting").font(.title)
List{
Text("Wi-Fi")
Text("Mobile Network")
Toggle("Bluetooth", isOn: $value)
Text("Connection and Sharing")
}
}
}
}
#Preview {
ContentView()
}
以下是輸出:
表單佈局
表單佈局用於建立結構化的輸入表單。它將各種欄位和標籤組合在一起,並將它們顯示在垂直可滾動的表單中。它用於儲存使用者提供的資料。
語法以下是語法:
Form{
//code
}
示例
以下 SwiftUI 程式建立表單佈局。
import SwiftUI
struct ContentView: View {
@State private var fname: String = ""
@State private var lname: String = ""
@State private var branch: String = ""
var body: some View {
NavigationStack{
Form{
TextField("First Name", text:$fname)
TextField("Last Name", text:$lname)
TextField("Branch", text:$branch)
Button("Submit"){
print("Form is submitted")
}
}.navigationTitle("User Form")
}
}
}
#Preview {
ContentView()
}
以下是輸出:
分組佈局
分組佈局用於在組中顯示多個檢視,而不會影響 UI 的佈局。當我們想要將修飾符應用於多個檢視時,或者可以用來建立層次結構時,它通常使用。
語法以下是語法:
Group{
//code
}
示例
以下 SwiftUI 程式建立分組佈局。
import SwiftUI
struct ContentView: View {
var body: some View {
Group{
Text("Notes 1")
.font(.title2)
Text("Notes 2")
.font(.title2)
Text("Notes 3")
.font(.title2)
}
.background(.gray)
.foregroundStyle(.white)
}
}
#Preview {
ContentView()
}
以下是輸出: