手势
Scripting 提供了与 SwiftUI 类似的完整手势系统,可为任意视图(如 <VStack>、<HStack>、<Text> 等)添加点击、长按、拖动、缩放、旋转等交互行为。
开发者既可以使用简化的 onTapGesture / onLongPressGesture / onDragGesture 等直接属性,也可以使用新的 Gesture 类接口和 gesture 修饰符,以获得更灵活的组合方式。
一、直接手势属性(简化用法)
这些属性提供最直接的交互绑定方式,适合快速使用场景。
1. onTapGesture
在识别到点击手势时执行指定操作。
类型
参数
示例
2. onLongPressGesture
在识别到长按手势时执行操作,可监听按压状态。
类型
参数
示例
3. onDragGesture
为视图添加拖动交互,支持实时位置变化与拖动结束事件。
类型
参数
DragGestureDetails 类型
示例
二、Gesture 类接口(高级用法)
若需要更复杂的组合或同时识别多个手势,可使用 Gesture 类与 gesture 修饰符。
所有手势均返回一个 GestureInfo 实例,通过 .onChanged() 与 .onEnded() 注册事件。
1. GestureInfo 类
示例
2. TapGesture(点击手势)
示例
3. LongPressGesture(长按手势)
示例
4. DragGesture(拖动手势)
示例
5. MagnifyGesture(缩放手势)
示例
6. RotateGesture(旋转手势)
示例
三、手势修饰符(Gesture Modifiers)
以下属性可添加在任何视图上,用于控制手势识别行为。
1. gesture
为视图添加一个手势。
2. highPriorityGesture
使该手势的识别优先于同视图上的其他手势。
3. simultaneousGesture
允许多个手势同时识别。
4. defersSystemGestures
设置屏幕边缘的优先权,使自定义手势优先于系统手势(如返回手势)。
四、GestureMask(手势优先级控制)
定义当添加多个手势时的优先策略。
