当视图在ScrollView内部时,onTapGesture无法正常工作吗?

时间:2020-07-01 13:57:51

标签: ios swift swiftui

我有一个简单的看法。

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

当我点击卡时,什么也没打印。但是,例如,如果我将scrollView更改为VStack,我会立即在控制台上得到Tapped。怎么了?如何在scrollView内的卡上实现点击手势?

1 个答案:

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