【发布时间】:2019-10-27 19:12:08
【问题描述】:
我在一个列表中有两个按钮,当点击时,列表项的整个区域都会突出显示。有没有办法分开两个按钮?
在这种情况下,我有一个操作按钮和一个信息按钮:
我找到了this question,但没有直接的解决方案。
代码如下:
var body: some View {
HStack {
Text(control.name)
Spacer()
Button(action: {
print("action")
}) {
Text("Action")
}
.frame(width: 250 - 10)
.padding(5)
.background(Color(white: 0.9))
.cornerRadius(10)
.frame(width: 250)
Group {
Button(action: {
print("action")
}) {
Image(systemName: "info.circle")
.foregroundColor(.accentColor)
}
}
}
}
【问题讨论】:
-
我认为还没有办法做到这一点 - 作为一种临时解决方法,您可以将列表替换为
HStack的ForEach,其中HStack将是您的行内容.请注意,样式不会相同 -List在这个意义上更精致。 -
@Fogmeister 该解决方案使用 .tapAction,一个有效的解决方案,但高亮状态丢失了..
-
@Fogmeister 我将它与信息图像的一个按钮和一个 tapAction 相结合,这是目前可行的解决方案。
-
试试 .buttonStyle(BorderlessButtonStyle())