HStack 内の 2 つのボタンが互いにアクションを起こす 質問する

HStack 内の 2 つのボタンが互いにアクションを起こす 質問する

水平スタックビュー(ラベル、ボタン、ボタン)を持つシンプルなリストを作成しました。各ボタンには独自のボタンアクションがありますが、実行すると、1つのボタンをタップすると2つのアクションが印刷されることがわかります。ブレークポイントも両方のアクション内にあります。これが私のコードですギフ

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")
    }
}

ベストアンサー1

onTapGesture代わりにactionこのように使用する必要があります。

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

おすすめ記事