【发布时间】:2019-04-20 10:46:23
【问题描述】:
当发件人状态开始时,我正在使用 UIPanGestureRecognizer 处理事件。在这种状态下,我测量速度和平移。我总是得到非零速度。平移的符号通常与速度相同(平移是一个小的非零数),但有时平移等于 0。为什么?
我已经在带有 iOS 11 的 iPhone 7 上安装了它。
【问题讨论】:
标签: ios uipangesturerecognizer
当发件人状态开始时,我正在使用 UIPanGestureRecognizer 处理事件。在这种状态下,我测量速度和平移。我总是得到非零速度。平移的符号通常与速度相同(平移是一个小的非零数),但有时平移等于 0。为什么?
我已经在带有 iOS 11 的 iPhone 7 上安装了它。
【问题讨论】:
标签: ios uipangesturerecognizer
这是因为平移手势识别器在检测到移动时开始识别手势。屏幕上的第一次触摸还不是平底锅,它只是一个触摸。手指必须至少移动一点点才能被视为平底锅。如果它向一个方向移动一点点,速度也会在那个方向上
docs 说:
平移手势是连续的。它在允许的最小手指数 (minimumNumberOfTouches)移动到足以被视为平移时开始 (UIGestureRecognizer.State.began)。
(强调我的。)
如果您将手指向一个方向移动,然后返回到原来的位置,则平移可以为 0,并且总移动足以使 UIPanGestureRecognizer 被视为平移。
【讨论】: