1 手势

原文链接: https://developer.apple.com/documentation/swiftui/gestures

1 手势

定义从点按、点击和轻扫到更精细手势的各种交互。

概述

通过为视图添加手势修饰符来响应手势。你可以监听点按、拖拽、捏合以及其他标准手势。

你还可以用 simultaneously(with:)、sequenced(before:) 或 exclusively(before:) 修饰符把各个手势组合成自定义手势,也可以用 modifiers(_:) 修饰符把手势与键盘修饰键结合起来。

重要:当你需要一个按钮时,请使用 Button 实例,而不是点按手势。你可以把任何视图用作按钮的标签,而按钮类型会自动提供用户期望按钮具备的许多标准行为,例如辅助功能标签和提示。

关于设计指导,请参阅 Human Interface Guidelines 中的 手势。

基础

识别点按手势

识别长按手势

识别空间事件

  • SpatialEventGesture — 一种提供关于点击、触摸等持续中的空间事件信息的手势。
  • SpatialEventCollection — 以某个特定视图为目标的空间输入事件集合。
  • Chirality — 某个姿态的手性,也就是左右手习惯。

识别随时间变化的手势

  • gesture(_:) — 把一个 NSGestureRecognizerRepresentable 附加到该视图上。
  • gesture(_:isEnabled:) — 以比该视图自身定义的手势更低的优先级,把手势附加到该视图上。
  • gesture(_:name:isEnabled:) — 以比该视图自身定义的手势更低的优先级,把手势附加到该视图上。
  • gesture(_:including:) — 以比该视图自身定义的手势更低的优先级,把手势附加到该视图上。
  • DragGesture — 一种拖拽动作,会随着拖拽事件序列的变化调用动作。
  • WindowDragGesture — 一种识别并处理窗口拖拽动作的手势。
  • MagnifyGesture — 一种识别放大动作并跟踪放大倍数的手势。
  • RotateGesture — 一种识别旋转动作并跟踪旋转角度的手势。
  • RotateGesture3D — 一种识别三维旋转动作并跟踪旋转角度和轴的手势。
  • GestureMask — 一些选项,控制把一个手势添加到视图上会如何影响该视图及其子视图识别到的其他手势。

识别 Apple Pencil 手势

组合手势

自定义手势

  • GestureInputKinds — 一个选项集合,用于指定手势应识别哪些输入类型。

定义自定义手势

管理手势状态

  • GestureState — 一种属性包装器类型,在用户执行手势期间更新某个属性,并在手势结束时把该属性重置回初始状态。
  • GestureStateGesture — 一种会更新手势 updating 回调所提供状态的手势。

处理激活事件

已弃用的手势