【发布时间】:2022-12-13 01:03:41
【问题描述】:
我喜欢为我的文本字段设置默认样式。但是某些部分应该可以从视图中自定义。
我确信我使用的方法不正确,因为我得到了一个错误:
struct MaxTextFieldStyle: TextFieldStyle {
@State var icon: Image?
@State var framesize: Int = 0
func _body(configuration: TextField<Self._Label>) -> some View {
HStack {
if icon != nil {
icon
.foregroundColor(Color(UIColor.systemGray4))
}
configuration
}
.padding()
.overlay {
RoundedRectangle(cornerRadius: 8, style: .continuous)
.stroke(Color(UIColor.systemGray4), lineWidth: 2)
}
if(framesize > 0) { .frame(width: framesize) }
.frame(maxWidth: .infinity, alignment: .trailing)
.keyboardType(.decimalPad)
}
}
我如何添加,如果帧大小大于 0,它会添加吗?
【问题讨论】:
-
您可以使用 avanderlee.com/swiftui/conditional-view-modifier 之类的东西,但要注意使用
if修饰符可能会破坏身份的潜在问题。此外,此处显示您不需要@State——当您具有可变状态时,该属性包装器适用于您的示例中没有的状态。
标签: swiftui