SwiftUI DragGesture 被 ScrollView 吞噬

Mis*_*cha 6 scrollview gesture swiftui draggesture

我想在任何 SwiftUI 视图上注册某个拖动手势,包括ScrollViews与任何其他手势同时注册(即不影响现有手势)。然而,当如下所示DragGesture在 a 上添加 a 时ScrollView,该手势似乎立即被 吞没了ScrollView

ScrollView {
    Rectangle()
        .frame(width: 500, height: 500)
}
.simultaneousGesture(
    DragGesture()
        .onChanged { value in
            print("changed:", value.translation)
        }
        .onEnded { value in
            print("ended:", value.translation)
        }
)
Run Code Online (Sandbox Code Playgroud)

当我拖动 时Rectangle,此代码将打印:

changed: (3.0, 16.666671752929688)
Run Code Online (Sandbox Code Playgroud)

例如。

所以onChanged只被调用一次,onEnded永远不会被调用。

有没有办法也可以DragGestures一起工作?ScrollViews

笔记:

GestureState我也尝试使用和修饰符找到解决方法updating(_:),但它也不起作用。