问题和场景描述:
在Form表单或List中,如果行里有多个按钮,当点击某个按钮时,所有按钮都自动点击。
这个问题困扰了无数人,无论他们有多少经验。
原因
当表单或列表中有行时,SwiftUI 喜欢假设行本身是可点击的。这使得用户 可以点击行中的任意位置来触发其中的按钮。
解决办法
可以通过附加到整体的额外修饰符.buttonStyle(.plain)来禁用整个“点击行以触发其按钮”行为 ,这使得 SwiftUI 单独对待每个按钮。
HStack {
ForEach(0..<5, id:\.self){
Button("X"){
}
}
}
.buttonStyle(.plain)