SwiftUI如何创建自定义绑定?

13 min read

在SwiftUI中,我们可以使用@Binding来创建自定义绑定。下面是一个简单的示例:

struct ContentView: View {

    @State var text: String = ""

    var body: some View {
        VStack {
            MyTextField(text: $text)
            Text(text)
        }
    }
}

struct MyTextField: View {

    @Binding var text: String

    var body: some View {
        TextField("Enter text", text: $text)
            .padding()
            .background(Color.gray.opacity(0.2))
            .cornerRadius(5)
    }
}

在上面的示例中,我们创建了一个MyTextField组件,该组件内部使用TextField来显示用户输入的文本。MyTextField的构造函数接受一个text参数,这个参数是我们自定义的绑定。我们使用$text来将原始的绑定传递给TextField

现在,当用户在TextField中输入文本时,它将通过绑定更新text变量。因此,text变量的值将在Text组件中更新并显示。