提问者:小点点

视图在滚动视图内时onTapGesture不工作?


我的视野很简单。

var body: some View {
    NavigationView {
        ZStack {
            ScrollView {
                GeometryReader { geometry in
                    CardView(geometry: geometry)
                    .onTapGesture {
                            print("Tapped")
                        }
                }
            .padding()
            }
        }
    }

当我在卡片上敲击时,什么也打印不出来。 但是,例如,如果我将scrollview更改为vstack,我会立即在控制台上获得点击。 发生什么事了? 如何在滚动视图内的卡片上实现轻点手势?


共1个答案

匿名用户

你的问题可能出在几何阅读器上,试着把它移动到滚动视图上方而不是里面

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