1 行に1 と 2 つのボタンがある場合List
、行全体をハイライトせずにどのボタンがタップされたかを区別するにはどうすればよいでしょうか?
このサンプル コードでは、行内のいずれかのボタンがタップされると、両方のボタンのアクション コールバックが呼び出されます。
// a simple list with just one row
List {
// both buttons in a HStack so that they appear in a single row
HStack {
Button {
print("button 1 tapped")
} label: {
Text("One")
}
Button {
print("button 2 tapped")
} label: {
Text("Two")
}
}
}
ボタンの 1 つだけを 1 回タップすると、両方のボタンのコールバックが呼び出されますが、これは望んでいることではありません。
button 1 tapped
button 2 tapped
ベストアンサー1
.bordered
任意のボタンスタイル( 、.borderless
、.borderedProminent
など)を適用できますが、.自動。
List([1, 2, 3], id: \.self) { row in
HStack {
Button(action: { print("Button at \(row)") }) {
Text("Row: \(row) Name: A")
}
.buttonStyle(.borderless)
Button(action: { print("Button at \(row)") }) {
Text("Row: \(row) Name: B")
}
.buttonStyle(.plain)
}
}