0

我一直在检查多个水龙头,无论是 2 还是 10,只需在任何触摸上调用 tapCount:

[[touches anyObject] tapCount]==2

这只是检查双击。

它工作正常。我想知道是否有任何特别的理由开始使用UITapGestureRecognizer.

看起来UITapGestureRecognizerAPI 提供了与直接检查触摸相同的功能的包装器,如上所述。诸如屏幕上的手指数量之类的东西tapCount不需要UITapGestureRecognizer

对于像滑动这样的事情,我可以看到让 UIKit 处理识别它们的简单性,因为它们更难手动编码,但是对于 tapCount?这里真正的收获在哪里,我错过了什么?

4

2 回答 2

1

手势识别器提供在同一视图上处理多种手势类型的协调。请参阅文档中对状态机的讨论。

如果点击是唯一感兴趣的手势,您可能找不到太多价值,但如果您想将点击的识别与您或系统提供的类提供的其他手势(例如滚动视图)协调起来,该架构会派上用场。手势识别器在触摸时首先得到破解,因此您将需要使用此架构,例如,如果您想在滚动视图处理它们之前识别滚动视图的子项中的触摸。

手势识别器也可以设置为延迟识别,例如,在双击超时之前不会调用单击的动作。

一般来说,手势识别器方法是一种很好的采用方法,因为它允许跨应用程序和代码源以一致的方式管理手势。如果 Apple 想要添加一个辅助技术偏好,允许用户选择更长的时间来识别双击。他们可以做到这一点,而无需对使用标准手势识别器的开发人员的代码进行任何更改。

我应该补充一点,手势识别器可以直接添加到您的故事板或 nib 中,因此在大多数情况下,您只需编写目标操作,这可以节省新代码的时间。

于 2013-04-07T05:15:45.707 回答
0

UITapGestureRecognizer 提供了一个更干净、更易于使用的 API,但没有新功能。所以对于你的情况,没有理由。

于 2013-04-07T03:30:06.997 回答