swiftui - 如何自定义 SwiftUI .onDrag 自动添加的手势识别器?
问题描述
有什么方法可以自定义 .onDrag() 在 SwiftUI 视图中使用的手势识别器?开发人员文档指出“应用 onDrag(_:) 修饰符会为该视图添加适当的拖放手势”,但据我所知,关于如何更改这些手势的行为是沉默的。这些手势在开始拖动之前等待长按。我想将延迟减少到零。
为什么需要
该应用程序当前使用自定义 DragGesture 和 .offset(value) 来实现拖动。此策略要求启动拖动的视图具有比任何可能拖动项目的视图更大的 .zIndex。由于拖动可以在不同的视图中开始,每个视图的 .zIndex 通过三元运算符以编程方式进行管理。
.onDrag() 功能将拖动的项目置于所有视图的顶部,而与 .zIndex 无关。由于实现了放大手势,现在需要此行为,这要求放大视图的 .zIndex 低于其他视图的 .zIndex ,否则它将在扩展时覆盖它们。如果放大视图是拖动源,则所需的 .zIndex 行为(高用于拖动,低用于放大)是不兼容的。
我尝试在放大视图上使用 .clipped() ,但这会阻止拖动的项目出现在该视图之外。
解决方案
苹果开发者支持回应说没有办法自定义 SwiftUI 自动添加到 .onDrag() 的手势识别器
推荐阅读
- c++ - C ++:比较3个Double值在明显为false时返回true +在return语句处崩溃
- java - 尽管有 @NotNull 和 @Size 注释,但 Spring mvc 表单验证没有报告错误
- swift - 将 midi 弯音转换为 0 到 4 对数刻度
- maven - Maven 从依赖 jar 导入 avro 定义
- r - 包含不同长度列表的 Unnest 或 unhop 数据框
- machine-learning - MAPE 损失函数相对于 MAE 和 RMSE 的优势
- python - 在 python 中通过 websockets.connect() 创建 websocket 连接时内存使用率高
- php - laravel 中的密码重置链接有效期不会过期
- c++ - 在非线性有限元代码中有效地使用 Eigen 进行重复稀疏矩阵组装
- javascript - Angular Recorder 不是构造函数