![](/img/trans.png)
[英]How to find out which collection view cell is tapped inside collection view cell
[英]How do you find out which view was tapped in SwiftUI?
所以如果我在 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)
}
}
...这行得通,水龙头确实注册了,但我不知道如何确定哪个视图被点击,以便我可以使用水龙头更新变量或调用关联视图的 function。
您可以使用存储selectedPost
的@State
属性找到被点击的帖子,如下所示。 并像我对背景所做的那样更新View
。
struct ContentView: View {
var posts: [Post] = []
@State private var selectedPost: Post?
@State private var tapped = false
var body: some View {
List {
ForEach(posts) { post in
PostView(post: post)
.background(post == selectedPost ? Color.clear : Color.green)
.onTapGesture {
self.selectedPost = post
self.tapped.toggle()
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.