SwiftUI:NavigationLink和ScrollView拖动手势发生碰撞

问题描述 投票:2回答:1

我正在尝试在SwiftUI中实现类似于UICollectionViewView,这基本上可以正常工作。但是,当我在滚动视图中滚动/拖动以向下滚动时,即使我只是想向下滚动,也可以在NavigationLink上识别该轻敲,然后导航到详细视图。

任何想法可能是什么原因造成的?附加信息:整个NavigationView是从另一个视图的.sheet打开的(如您在屏幕截图中可能会注意到的)。我尝试通过在链接上设置tag属性并在TapGesture中设置标签来添加“手动”链接,但这也不起作用。

这里是一个可以重现错误的简短示例。向下滚动将激活对白色矩形之一的点击。

View before drag gesture on scroll view

View during drag gesture, tap is already recognized on NavigationLink

Navigation view pushes to detail view after drag gesture

    var body: some View {
        NavigationView {
            ScrollView {
                VStack {
                    ForEach(0..<6) { i in
                        NavigationLink(destination: Text("Detail")) {
                            Rectangle()
                                .background(Color.red)
                                .frame(width: 365, height: 100, alignment: .center)
                        }
                    }
                }
            }
            .navigationViewStyle(StackNavigationViewStyle())
            .navigationBarTitle("Items")
        }
    }
scrollview swiftui navigationview navigationlink
1个回答
0
投票

在预览(画布)和模拟器中的Xcode版本11.4(11E146)中已修复。

© www.soinside.com 2019 - 2024. All rights reserved.