ios - HStack 中的两个按钮相互执行操作

标签 ios swiftui

我创建了一个带有水平堆栈 View (标签、按钮、按钮)的简单列表。每个按钮都有自己的按钮操作,但是当我运行时,我可以看到点击一个按钮会打印两个操作。断点也出现在这两个 Action 中。她是我的代码gif

var body: some View {
    NavigationView {
        List {
            ForEach(self.heroViewModel.heros, id: \.self) { hero in
                Section(header: Text(hero.name)) {
                    ForEach(hero.movies, id: \.self) { movieName in
                        HStack {
                            Text(movieName)
                                .onTapGesture {
                                    return
                            }.frame(width: 150, height: 30, alignment: .leading)
                            Spacer()

                            Button(action: {
                                print("Rate us")
                            }, label: {
                                Text("Rate us")
                                    .background(Color.red)
                                }).padding()

                            Spacer()
                            Button(action: {
                                print("watch me")
                            }, label: {
                                Text("Watch")
                                    .background(Color.red)
                                }).padding()
                        }

                    }
                }
            }
        }.navigationBarTitle("Heros List")
    }
}

最佳答案

需要使用onTapGesture而不是像这样的action

Button(action: {}) {
    Text("watch")
}
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.red)
.onTapGesture {
    print("watch")
}

关于ios - HStack 中的两个按钮相互执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58514891/

相关文章:

swiftui - 如何在我的自定义形状上圆化这些角?

ios - 如何观察 UserDefaults 的变化?

swift - 获取日期中的某一天 SwiftUI

ios - 拖动手势的单元格将覆盖使用SwiftUI滚动列表

swiftui - 隐藏 SwiftUI DisclosureGroup 箭头并删除默认填充

objective-c - Objective C Interface Builder ARC - 保留自定义 Controller

iOS应用程序更新方法

ios - 为什么不鼓励 "didChangeValueForKey:withSetMutation:usingObjects:"覆盖

ios - 将数据从一个 View Controller 传递到另一个 View Controller

ios - 自定义 segue 到不同的 Storyboard