具有自定义初始化的 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())
}
}
目前,当我实例化此视图时,我需要将 text
和 name
名称都传递给参数。我希望能够使 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)
}
}
假设我正在制作一个如下所示的自定义输入元素:
struct CustomInput : View {
@Binding var text: String
var name: String
var body: some View {
TextField(name, text: $text)
.modifier(InputModifier())
}
}
目前,当我实例化此视图时,我需要将 text
和 name
名称都传递给参数。我希望能够使 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)
}
}