Me resultó mejor crear un componente para los inputs.
struct InputForm: View {
@Binding var textBinding: String
var label: String
var placeholder: String
var isSecureTextField: Bool = false
var bottomSpace: CGFloat?
var body: some View {
VStack(alignment: .leading) {
Text(label)
.foregroundColor(Color("darkCian"))
.fontWeight(.bold)
ZStack(alignment: .leading) {
if textBinding.isEmpty {
Text(placeholder)
.font(.caption)
.foregroundColor(Color("lightGray"))
}
if isSecureTextField {
SecureField("", text: $textBinding)
.font(.body)
.foregroundColor(.white)
} else {
TextField("", text: $textBinding)
.font(.body)
.foregroundColor(.white)
}
}
if let bottomSpace = self.bottomSpace {
Divider()
.frame(height: 1)
.background(Color("darkCian"))
.padding(.bottom, bottomSpace)
} else {
Divider()
.frame(height: 1)
.background(Color("darkCian"))
.padding(.bottom)
}
}
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?