【发布时间】:2018-09-14 19:07:37
【问题描述】:
我正在尝试使用手势识别器来允许用户通过用一根手指拖动来调整屏幕上的视图大小......因此,我想跟踪触摸的所有变化。我最初尝试为此使用PanGestureRecognizer,但是当用户用多个手指触摸视图时遇到了问题。我只想跟踪第一次触摸(即用户在手势过程中放在屏幕上的第一根手指),但我找不到防止其他触摸干扰我跟踪第一次触摸的能力的方法。我最初的解决方案是简单地设置
recognizer.maximumNumberOfTouches = 1
但是,这会导致在第二次触摸时取消整个手势(在这种情况下,我想继续跟踪第一次触摸)。但是,当然,不将此值设置为 1 会导致手势实际跟踪多个触摸。 如何制作一个手势识别器,只跟踪手势中第一次触摸的所有变化,并且不会因屏幕上的其他触摸而取消?
【问题讨论】:
-
如果你删除
recognizer.maximumNumberOfTouches = 1这一行会发生什么? -
使用标准 PanGestureRecognizer,它可以跟踪两个触摸。使用我的自定义识别器,它会取消整个手势(但这样做似乎略有延迟)。
-
摆脱
touchesMoved的实现。 -
@matt 但是在开始之后如果用户在这种情况下触摸他的第二根手指
touchBegan将不会再次调用.. 不是吗? -
对,但您不希望这样做。您只想继续跟踪第一根手指,这就是会发生的事情
标签: ios swift uigesturerecognizer uipangesturerecognizer