我试图为一个视图添加两个UITapGestureRecognizers,一个用于单击事件,另一个用于双击事件。单击识别器可以正常工作(独立使用时),但是我好像无法使双击识别器正常工作。已经尝试使用cancelsTouchesInView、delaysTouchesBegan和delaysTouchesEnded等属性进行实验,但仍然不能正常工作。
当我双击时,单击识别器总是会被激活,并且双击事件也会被发送到超级视图。但是自定义的双击识别器似乎根本没有被通知过。
文档似乎建议可以使用上述三个属性来实现此目的,但我不确定应该在哪个识别器(单击、双击或两者)以及设置哪些值。希望熟悉此问题的人能提供帮助。
以下是最新更新的代码块:
当我双击时,单击识别器总是会被激活,并且双击事件也会被发送到超级视图。但是自定义的双击识别器似乎根本没有被通知过。
文档似乎建议可以使用上述三个属性来实现此目的,但我不确定应该在哪个识别器(单击、双击或两者)以及设置哪些值。希望熟悉此问题的人能提供帮助。
以下是最新更新的代码块:
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}