如何自定义SwiftUI自动添加的手势识别器.onDrag?

How to customize the gesture recognizer automatically added by SwiftUI .onDrag?

有什么方法可以自定义 SwiftUI 视图中 .onDrag() 使用的手势识别器吗?开发人员文档指出“应用 onDrag(_:) 修饰符添加适当的拖放手势到此视图”,但据我所知,关于如何改变这些手势的行为却没有提及。这些手势在开始拖动之前等待长按。我想将延迟减少到零。

为什么需要

该应用目前使用自定义 DragGesture 和 .offset(value) 来实现拖动。此策略要求启动拖动的视图具有比可能拖动项目的任何视图更大的 .zIndex。由于拖动可以在不同的视图中开始,因此每个视图的 .zIndex 都是通过三元运算符以编程方式管理的。

.onDrag() 功能将拖动的项目置于所有视图之上,而不管 .zIndex。由于放大手势的实现,现在需要此行为,这要求放大视图的 .zIndex 低于其他视图的 .zIndex,否则它将在扩展时覆盖它们。如果放大视图是拖动的来源,则所需的 .zIndex 行为(拖动时高,放大时低)不兼容。

我尝试在放大视图上使用 .clipped(),但这会阻止拖动的项目出现在该视图之外。

苹果开发者支持回应无法自定义SwiftUI自动添加到.onDrag()的手势识别器