ios - 在 iOS 中用三个手指松开自定义手势识别器

标签 ios iphone objective-c ios7 uipinchgesturerecognizer

我想用三个 手指制作自定义手势识别器。这类似于松开手势识别器。

我只需要知道如何识别它。

我的手势需要识别三个方向的三个手指。例如:

enter image description here

enter image description here

enter image description here

我希望图片有意义。 我需要使其在任何三个相反的方向上都灵活。在此先感谢。任何帮助将不胜感激。

我知道子类方法,并且我已经用单指创建了自定义手势,例如半圆、全圆。我需要一个关于如何处理它的编码想法。

最佳答案

您需要创建一个您自己的 UIGestureRecognizer 子类(我们称它为 DRThreeFingerPinchGestureRecognizer)并在其中实现:

– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:

这些方法在系统接受触摸时调用,并且可能在将它们发送到 View 本身之前调用(取决于您如何设置手势识别器)。这些方法中的每一个都会给你一组触摸,你可以检查 View 中的当前位置和以前的位置。由于捏合手势相对简单,此信息足以让您测试用户是否正在执行捏合,并使测试失败 (UIGestureRecognizerStateFailed)。如果状态未因 – touchesEnded:withEvent: 失败,您可以识别该手势。

我说捏合手势很简单,因为您可以轻松地跟踪每个触摸并查看它与其他触摸和它本身相比如何移动。如果一个角度的阈值通过并被打破,你就没有通过测试,否则你允许它继续。如果触摸彼此之间没有以不同的角度移动,则您未通过测试。您将不得不考虑可接受的矢量角度,因为 120 度对于三个最常见的手指(拇指 + 食指 + 中指)来说并不是最佳的。您可能只想检查向量是否没有发生碰撞。

请务必阅读 UIGestureRecognizer documentation深入了解各种方法以及子类化注释。

关于ios - 在 iOS 中用三个手指松开自定义手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23591293/

相关文章:

jquery - ipad/iphone css 转换与 jquery 不工作

iphone - 在 UITableView 中选择 UIImage

iphone - 如何创建自定义 iOS View

ios - 从动态创建的 UITextFields 访问文本值。 iOS

android - 纹理/图案识别/匹配int Unity?

ios - 我如何知道应用内购买是否可以在我的应用中使用?

objective-c - 如何杀死所有不是主线程的线程?

ios - 计算类的对象数

ios - 在 Storyboard中使用 Segues 制作一个具有非可选属性的 View Controller ?

iphone - 如何锁定 UITableView 中的标题/标题