SuperAPI AI 工具集

swiftui-gestures

编程与开发

查看项目

更新于 10-16 05:52

技能介绍

用途:编写、审查与修复 SwiftUI 手势交互,应用现代手势 API,处理组合、状态管理与冲突,面向 iOS 26+ 与 Swift 6.3。

主要能力:覆盖点击、长按、拖拽、缩放与旋转等手势;区分离散手势(.onEnded 触发一次)与连续手势(.onChanged/.onEnded/.updating 流式更新)。支持三种组合方式:.simultaneously(with:)、.sequenced(before:)、.exclusively(before:)。用 @GestureState 管理手势结束后自动重置的临时状态,用 @State 保存跨交互持久状态。通过 .gesture、.highPriorityGesture、.simultaneousGesture 与 GestureMask 控制父子视图手势优先级与仲裁。

使用方式:长按可用 @GestureState 与 .updating 提供按压反馈;拖拽用 DragGesture 跟踪 translation 并在 .onEnded 复位;缩放与旋转在 iOS 17+ 用 MagnifyGesture、RotateGesture,替代已废弃的 MagnificationGesture、RotationGesture。

适用场景:需要手势识别、组合、手势状态或手势无障碍替代方案的交互;涉及更广 SwiftUI 架构与状态归 swiftui-patterns,列表、滚动、表单与控件布局归 swiftui-layout-components,UIKit 桥接归 swiftui-uikit-interop。

限制与注意:单次点击可操作控件优先用 Button 而非 onTapGesture(后者缺 VoiceOver 特性、焦点与键盘激活);onChanged 需保持轻量,避免重计算;长按必须配视觉反馈;父手势默认不覆盖子手势,需显式 .highPriorityGesture;修正 Apple API 可用性、弃用或行为时需引用 Sosumi 或 Apple 官方文档 URL。更多配方见 references/gesture-patterns.md。