UIPanGestureRecognizer 是离散的还是连续的?

Is UIPanGestureRecognizer discrete or continuous?

我觉得这个文档有点混乱: https://developer.apple.com/documentation/uikit/uipangesturerecognizer

具体来说,文档的顶部说它是离散的:

A discrete gesture recognizer that interprets panning gestures.

那么下面的描述就是:

A panning gesture is continuous. It begins (UIGestureRecognizer.State.began) when the user moves the minimum number of fingers allowed (minimumNumberOfTouches) enough distance for recognition as a pan. It changes (UIGestureRecognizer.State.changed) when the user moves a finger while pressing with the minimum number of fingers. It ends (UIGestureRecognizer.State.ended) when the user lifts all fingers.

所以是哪个?离散还是连续?

我的理解是,离散识别器仅在识别时才调用回调操作(例如滑动),但连续识别器在移动时也会调用回调操作。所以平移手势应该是连续的。我说的对吗?

在我看来,这主要是一个“术语”问题。

A UIPanGestureRecognizer谨慎 因为它不是从触摸开始...它进入“可能”状态。它仅在触摸移动了足够的距离以将其识别为平移后才生成 .began 事件。之后,它是连续,因为它会在触摸移动时发送.changed 个事件。

您可能会发现查看这些 Apple 文档(以及其他文档)很有帮助:

尽管...如果您实际上正在实现自己的手势识别器,您可能只需要知道“down-and-dirty”。

从第一个 link DonMag 在他的回答中发帖,About the Gesture Recognizer State Machine

它解释了 离散 手势识别器 fire/fail 一次,然后重置。 连续 手势识别器可以进入循环,在用户移动手指时返回 UIGestureRecognizer.State.changed 状态。

编辑:

我认为@OMGPOP 知道发生了什么。看起来“解释平移手势的离散手势识别器”这句话中的“离散”一词应该是“具体的”。那一定是打错了。

基础 UIGestureRecognizer class 的描述说“UIGestureRecognizer:具体手势识别器的基础 class”这一事实支持了这一想法。 UIGestureRecognizer 是像 UIPanGestureRecognizer 这样的 具体 class 的 抽象 父 class。