具有自定义初始化的 SwiftUI 视图

SwiftUI Views with a custom init

假设我正在制作一个如下所示的自定义输入元素:

struct CustomInput : View {
    @Binding var text: String
    var name: String

    var body: some View {
        TextField(name, text: $text)
            .modifier(InputModifier())

    }
}

目前,当我实例化此视图时,我需要将 textname 名称都传递给参数。我希望能够使 name 参数可选,如下例所示。

 CustomInput("Some name", $text)

通常我会为此使用 init 方法。但我不确定如何在 init 函数中处理 属性 包装器,如 @Binding

关于如何实现此目标的任何想法?

你可以这样写你的初始化程序:

struct CustomInput : View {
    @Binding var text: String
    var name: String

    init(_ name: String, _ text: Binding<String>) {
        self.name = name

        // Beta 3
        // self.$text = text

        // Beta 4
        self._text = text
    }

    var body: some View {
        TextField(name, text: $text)
    }
}