我在文档中找不到如何指定UIPinchGestureRecognizer或UIRotationGestureRecognizer的触摸次数的方法。 我在任何地方找到的只是它只能用两个手指,但通过我的实验,它也适用于3个甚至更多的手指。 此外,在动作中,属性numberOfTouches也永远不会返回实际的手指数。 我想限制它只用于两个手指因为它与其他3指识别器混淆。 请你帮我一个好方法吗?感谢。
答案 0 :(得分:1)
根据docs UIPinchGestureRecognizer
句柄
[...]捏手势涉及两次触摸[...]
显然它只考虑两次触摸但允许同时发生额外触摸。
要回答您的问题:您可以尝试通过其他方式获取实际的触摸次数,并在该次数大于2时阻止捏合操作。一种方法是添加更多手势识别器,在同一视图上处理手势(例如多个UITapGestureRecognizer
s,每个可能的触摸次数一个;另一个是覆盖安装了手势识别器的视图的touchesBegan
和touchesMoved
,并使用提供的touches
数组的计数。
(我首先采用第二种方法,因为并行管理多个手势识别器可能会出现问题。)
答案 1 :(得分:1)
将代表添加到您关注的捏合手势识别器中。
实施gestureRecognizer(_:, shouldRecognizeSimultaneouslyWith:)
并返回false
如果您希望在还有其他识别器正在进行时忽略捏合手势。