複数のボタンを使用した場合のSwiftUIフォームコンテナでの予期しない動作[重複]
Nov 27 2020
以下のコードを考えると、ボタンをZERO
タップした後に選択が行われることを期待してZERO
いましたが、常にですONE
。実際、ボタン名をタップする必要はありませんが、行の中央にあり、選択は引き続きですONE
。これは予期しない動作であり、バグである可能性があります。誰かがこれについての説明および/または回避策を持っていますか?iOS14.0およびXcode12.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")
}
}
}
}
}
回答
2 HarshilPatel Nov 27 2020 at 04:44
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())
}
}
}
}
.foregroundColor(.blue)
ボタンに追加する.buttonStyle(PlainButtonStyle())
と、ボタンがプレーンテキストのように見えるため、ボタンテキストに追加しました。