SwiftUI 對(duì) ViewState 的表達(dá)語(yǔ)法

小云
101
2023-09-19 06:28:40

SwiftUI 中的 ViewState 可以通過(guò) @State 關(guān)鍵字來(lái)表示。

  1. 單個(gè)狀態(tài)屬性的定義和初始化:
@State private var isShowingSheet = false
  1. 在 View 中使用狀態(tài)屬性:
struct ContentView: View {
@State private var isShowingSheet = false
var body: some View {
VStack {
Button("Show Sheet") {
self.isShowingSheet = true
}
.sheet(isPresented: $isShowingSheet) {
SheetView()
}
}
}
}
  1. 在 View 中使用狀態(tài)屬性的值:
struct SheetView: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
VStack {
Text("Sheet View")
Button("Dismiss") {
self.presentationMode.wrappedValue.dismiss()
}
}
}
}

在上述示例中,isShowingSheet 是一個(gè)用于控制是否顯示 sheet 的狀態(tài)屬性。當(dāng)點(diǎn)擊按鈕時(shí),它的值被設(shè)置為 true,從而顯示 sheet。sheet 的顯示狀態(tài)由 isPresented 參數(shù)控制,它接受一個(gè)綁定的狀態(tài)屬性作為值。

在 SheetView 中,presentationMode 是一個(gè)用于控制 sheet 是否被隱藏的環(huán)境值。當(dāng)點(diǎn)擊按鈕時(shí),調(diào)用 self.presentationMode.wrappedValue.dismiss() 可以將 sheet 隱藏。

通過(guò) @State$ 符號(hào),SwiftUI 實(shí)現(xiàn)了一種簡(jiǎn)潔而直觀的方式來(lái)處理和更新視圖的狀態(tài)。

0