Две кнопки внутри HStack действуют друг на друга - PullRequest
0 голосов
/ 23 октября 2019

Я создал простой список с горизонтальным представлением стека (метка, кнопка, кнопка). каждая кнопка имеет свое собственное действие кнопки, но когда я запускаю, я вижу, что нажатие на одну кнопку печатает два действия. точка останова также входит в оба действия. ей мой код 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")
    }
}

1 Ответ

3 голосов
/ 23 октября 2019

Необходимо использовать onTapGesture вместо action таким образом.

Button(action: {}) {
                                Text("watch")
                            }.frame(minWidth: 0, maxWidth: .infinity)
                                .background(Color.red)
                                .onTapGesture {
                                    print("watch")
                            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...