ios - 限制 UIPinchGestureRecognizer 只能使用两个手指

标签 ios objective-c uipinchgesturerecognizer

我在文档中没有找到关于如何为 UIPinchGestureRecognizer 或 UIRotationGestureRecognizer 指定触摸次数的方法。
我在任何地方发现它只能用两个手指,但根据我的实验,它也可以用 3 个甚至更多的手指。
此外,在 Action 中,属性 numberOfTouches 也永远不会返回实际的手指数。
我只想将它限制为两个手指,因为它会与其他三指识别器混淆。
请你给我一个好的方法吗?谢谢。

最佳答案

根据 docs UIPinchGestureRecognizer 句柄

[...] pinching gestures involving two touches [...]



显然它只考虑两次触摸,但允许同时发生额外的触摸。

要回答您的问题:您可以尝试通过其他方式获取实际的触摸次数,并在该计数大于 2 时阻止捏合 Action 。一种方法是添加更多手势识别器来处理同一 View 上的手势(例如,多个 UITapGestureRecognizer s,每个可能的触摸次数一个);另一种方法是覆盖安装手势识别器的 View 的 touchesBegantouchesMoved 并使用提供的 touches 数组的计数。

(我会先采用第二种方法,因为并行管理多个手势识别器可能会出现问题。)

关于ios - 限制 UIPinchGestureRecognizer 只能使用两个手指,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893404/

相关文章:

iphone - 我如何将 Facebook 好友列表存储到 iOS 数组中?

ios - 下一次触摸前未能收到系统手势状态通知

ios - UITableViewCell 中的 ImageView 不会显示

ios - 从 UIView 中获取 UIImage

objective-c - CALAyer 子类中的不可动画属性

ios - 如何限制平移和缩放区域?

ios - 使用捏合手势;我怎样才能放大到用户手指实际 "pinch"的位置?

javascript - 如何确定javascript已经完成了某件事

ios - 为什么我的Xcode项目仅在工作空间中时才编译?

ios - Xcode 7.3.1 - 无法正确设置 AWS