Я пытаюсь добавить 2 UITapGestureRecognizers
к представлению, одно для одного касания и одно для событий двойного касания.Распознаватель с одним касанием работает как положено (сам по себе).Но я не могу заставить работать распознаватель двойного касания.
Попытался поэкспериментировать со свойствами, такими как: cancelsTouchesInView
, delaysTouchesBegan
и delaysTouchesEnded
, но все еще не работает.
При двойном касании распознаватель одиночного касания всегда будет активирован, и событие двойного касания также будет отправлено в супер-просмотр.Но пользовательский распознаватель двойного касания, похоже, вообще не уведомляется.
Документация предполагает, что 3 свойства, упомянутые выше, могут использоваться для этой цели.Но я просто не уверен, какие значения должны быть установлены и на какие распознаватели (одинарные, двойные или оба).Надеюсь, кто-то, знакомый с этим, может помочь.
Ниже приведен последний обновленный блок кода.
// ****** 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
{
}