【问题标题】:How to customize the gesture recognizer automatically added by SwiftUI .onDrag?如何自定义 SwiftUI .onDrag 自动添加的手势识别器?
【发布时间】:2021-03-26 09:54:01
【问题描述】:

有没有办法自定义 .onDrag() 在 SwiftUI 视图中使用的手势识别器?开发人员文档声明“应用 onDrag(_:) 修饰符会为该视图添加适当的拖放手势”,但据我所知,关于如何更改这些手势的行为是沉默的。这些手势在开始拖动之前等待长按。我想将延迟减少到零。

为什么需要

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

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

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

【问题讨论】:

    标签: swiftui drag-and-drop gesture-recognition


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 2017-11-18
      相关资源
      最近更新 更多