用途:在实现 SwiftUI 手势(点击、拖拽、长按、缩放、旋转)、组合手势、管理手势状态或调试手势冲突时提供参考。
主要能力:讲解 TapGesture、DragGesture、LongPressGesture、MagnificationGesture、RotationGesture 的基本用法;介绍手势组合方式 .simultaneously、.sequenced、.exclusively;说明 @GestureState 与 @State 的分工(临时状态自动重置、最终值持久化);提供自定义 Gesture(如带方向的 SwipeGesture)、速度与预测终点(predictedEndLocation)、无障碍集成(accessibilityAdjustableAction、accessibilityAction)以及 iOS、macOS、visionOS 跨平台差异。
使用方式:按决策树选择手势类型;拖拽等临时反馈用 @GestureState 的 updating 参数,结束时在 onEnded 提交到 @State;组合手势按需选用 simultaneously、sequenced、exclusively;与 ScrollView 冲突时用 simultaneousGesture 或 highPriorityGesture;纯点击优先用 Button,需要点击位置或次数时才用 TapGesture。
适用场景:可拖拽卡片、图片查看器(拖拽加缩放)、长按后拖拽排序、双击与单击区分、自定义滑动删除等。
限制:资料未提供安装命令、版本要求、收费与平台支持范围等具体信息;示例代码中的 API 行为以对应系统版本为准,部分内容(如 velocity 在 iOS 18+ 已弃用)需按资料说明处理。