我有一个简单的看法。
var body: some View {
NavigationView {
ZStack {
ScrollView {
GeometryReader { geometry in
CardView(geometry: geometry)
.onTapGesture {
print("Tapped")
}
}
.padding()
}
}
}
当我点击卡时,什么也没打印。但是,例如,如果我将scrollView
更改为VStack
,我会立即在控制台上得到Tapped
。怎么了?如何在scrollView内的卡上实现点击手势?
答案 0 :(得分:1)
您的问题可能在GeometryReader上,请尝试将其移动到scrollView上方而不是内部
var body: some View {
NavigationView {
ZStack {
Color("light_blue_grey")
.edgesIgnoringSafeArea(.all)
GeometryReader { geometry in
ScrollView {
Rectangle()
.foregroundColor(.blue)
.frame(width: geometry.size.width, height: 100)
.onTapGesture {
print("Tapped!")
}
}
.padding()
}
}
}
}