2
我在Swift中遇到了UIPanGestureRecognizer的一个奇怪情况。 我有一个函数可以处理平移手势,并在UIGestureRecognizerDelegate中指定“false”,这样就不会有其他手势干扰Pan。recognitionizer.location(in:recognizer.view)在swift中返回零点
这里是有问题的情况下:
- 用户触摸与1根手指,并开始平移
- 用户将第二个手指在屏幕上 - 第二个手指被忽略
- 用户拿起第一根指头而第二个仍然感人 - 在这一刻我的处理程序被称为
recognizer.state == .ended
。问题是,在这个时刻(位置,我获得通过调用recognizer.location(in: recognizer.view)
,返回(0,0)
我使用了错误的方式来获得该点的点呢?这似乎是因为第二手指被完全忽视,第一根指头应该表现为一个普通锅,我会得到位置时的状态==结束
是否记录了它们不可用?我用你说的解决方法,但我不知道这是否是最佳做法 – gbehar
如果您检查UIGestureRecognizer,那么讨论的两个是获取该信息的唯一方法(没有触及:设置,我可以找到 - 我认为这属于UIView,可能有一种很好的方式来做到这一点,但我不知道 –
solenoid
UIView会给你在它自己的覆盖func touchesEnded(_ touches:设置,事件:UIEvent? ),但它似乎并没有被调用,如果另一个手势是成功的。 –
solenoid