Unerwartetes Verhalten im SwiftUI Form-Container bei Verwendung mehrerer Schaltflächen [duplizieren]
Nov 27 2020
Angesichts des folgenden Codes habe ich erwartet, dass die Auswahl ZERO
nach dem Tippen auf die ZERO
Schaltfläche erfolgt, aber das ist immer so ONE
. Tatsächlich muss ich nicht auf den Schaltflächennamen tippen, sondern in der Mitte der Zeile, und die Auswahl bleibt bestehen ONE
. Dies ist ein unerwartetes Verhalten und möglicherweise ein Fehler. Hat jemand eine Erklärung und / oder Problemumgehung dafür? Verwenden von iOS 14.0 und Xcode 12.2
struct TestForm : View {
@State var selection = ""
var body : some View {
Form {
Text("selection: \(selection)")
HStack {
Button(action: {
selection = "ZERO"
}) {
Text("ZERO")
}
Spacer()
Button(action: {
selection = "ONE"
}) {
Text("ONE")
}
}
}
}
}
Antworten
2 HarshilPatel Nov 27 2020 at 04:44
Verwenden Sie PlainButtonStyle ().
struct ContentView: View {
@State var selection = ""
var body : some View {
Form {
Text("selection: \(selection)")
HStack {
Button(action: {
selection = "ZERO"
}) {
Text("ZERO")
.foregroundColor(.blue)
}.buttonStyle(PlainButtonStyle())
Spacer()
Button(action: {
selection = "ONE"
}) {
Text("ONE")
.foregroundColor(.blue)
}.buttonStyle(PlainButtonStyle())
}
}
}
}
Ich habe dem .foregroundColor(.blue)
Schaltflächentext hinzugefügt , da .buttonStyle(PlainButtonStyle())
Ihre Schaltflächen beim Hinzufügen zu Ihrer Schaltfläche wie einfacher Text aussehen.