gpt4 book ai didi

ios - 仅当父 VStack 位于 SwiftUI 中的列表内时,才会触发按钮的多个操作处理程序

转载 作者:行者123 更新时间:2023-11-28 23:28:14 27 4
gpt4 key购买 nike

案例 1:- 当我在 VStack 中有多个按钮时,单击其中任何一个时,两个按钮的操作处理程序都会立即执行,这仅在 VStack 为子级时发生列表。例如-

List {
VStack {
Button(action: { print("A") }) {
Text("Button A")
}

Button(action: { print("B") }) {
Text("Button B")
}
}
}

在这里,当您单击任何一个按钮(例如按钮 B)时,o/p 是:-一个B

案例 2:- 尝试仅使用 VStack,效果很好。例如-

VStack {
Button(action: { print("C") }) {
Text("Button C")
}

Button(action: { print("D") }) {
Text("Button D")
}
}

这里当你点击任何一个按钮(比如按钮 D)时,o/p 是:-D

我是 iOS 编程的新手,请帮助我了解我哪里出错了,或者这是 SwiftUI 的问题吗?

最佳答案

将按钮样式设置为与默认样式不同的样式,例如 BorderlessButtonStyle()

struct Test: View {
var body: some View {
NavigationView {
List {
ForEach([
"Line 1",
"Line 2",
], id: \.self) {
item in
HStack {
Text("\(item)")
Spacer()
Button(action: { print("\(item) 1")}) {
Text("Button 1")
}
Button(action: { print("\(item) 2")}) {
Text("Button 2")
}
}
}
.onDelete { _ in }
.buttonStyle(BorderlessButtonStyle())
}
.navigationBarItems(trailing: EditButton())
}
.accentColor(.red)
}
}

关于ios - 仅当父 VStack 位于 SwiftUI 中的列表内时,才会触发按钮的多个操作处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57937679/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com