Как узнать, какой вид был задействован в SwiftUI? - PullRequest
0 голосов
/ 26 мая 2020

Итак, если я сделаю распознаватель жестов касания в SwiftUI, например ...

@State var tapped = false

var tap: some Gesture {
    TapGesture(count: 1)
        .onEnded {
            _ in self.tapped = !self.tapped
            print("tapped!")

    }

}

... и затем добавлю этот распознаватель жестов касания к программно созданным представлениям в списке, вот так ... .

 List {
                // loop through all the posts and create a post view for each item
                ForEach(posts) { post in
                    PostView(post: post)
                    .gesture(self.tap)

                }
            }

... это работает, касания регистрируются, но я не могу понять, как определить, какой вид был нажат, так что я могу использовать касание для обновления переменной или вызова функция связанного представления.

1 Ответ

0 голосов
/ 26 мая 2020

Вы можете найти сообщение, которое прослушивают, используя этот код:

var body: some View {
    List {
        ForEach(posts) { post in
            Text(post)
                .onTapGesture {
                    self.tapped.toggle()
                    print("tapped post: \(post)")
            }
        }
    }
}
...