美文网首页SwiftUI学习
SwiftUI - 将状态绑定到UI控件

SwiftUI - 将状态绑定到UI控件

作者: xmb | 来源:发表于2021-02-05 09:36 被阅读0次
struct ContentView: View {
    @State private var name = ""
    
    var body: some View {
        NavigationView {
            VStack {
                // name前添加$
                TextField("Placeholder", text: $name)
                Text("name")
                Spacer()
            }
            .navigationBarTitle("SwiftUI")
        }
    }
}

Swift区分了在此处显示此属性的值在此处显示此属性的值,但将任何更改写回该属性

Swift中,我们用一个特殊的符号来标记这些双向绑定,这样它们就很显眼:我们在它们前面写一个美元符号$。这告诉Swift,它应该读取属性的值,但也应该在发生任何更改时将其写回。

$属性名:表示创建了一个双向绑定,属性值可读,可写。

举栗子:

struct ContentView: View {
    let students = ["Tom", "Lily", "Ti"]
    
    @State private var selectedStudent = 1
    
    var body: some View {
        NavigationView {
            List {
                Picker("Select you student", selection: $selectedStudent) {
                    ForEach(0..<students.count) {
                        Text(self.students[$0])
                    }
                }
                Text("选择的学生:\(students[selectedStudent])")
            }
            .navigationBarTitle("SwiftUI")
        }
    }
}
image.png

$selectedStudent表示进行了双向绑定,初始值为1,默认显示第二个,同时滑动picker时也会改变值。

相关文章

网友评论

    本文标题:SwiftUI - 将状态绑定到UI控件

    本文链接:https://www.haomeiwen.com/subject/wypazktx.html