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

Mel*_*vil 5 scrollview navigationview swiftui navigationlink

我正在尝试在 SwiftUI 中实现UICollectionView类似的功能View,它基本上工作得很好。NavigationLink但是,当我在滚动视图内滚动/拖动以向下滚动时,即使我只想向下滚动,也会识别出点击,然后导航到详细视图。

有什么想法可能导致这种情况吗?附加信息:整个内容NavigationView是从.sheet另一个视图打开的(正如您可能在屏幕截图中注意到的那样)。tag我尝试通过设置链接上的属性并在 a 中设置标签来添加“手动”链接TapGesture,但这也不起作用。

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

在滚动视图上拖动手势之前查看

在拖动手势期间查看,NavigationLink 上已识别点击

拖动手势后导航视图推送到详细视图

    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")
        }
    }
Run Code Online (Sandbox Code Playgroud)