ビューに2つ追加しようとしUITapGestureRecognizers
ています。1つはシングルタップ用、もう1つはダブルタップイベント用です。シングルタップレコグナイザーは、(それ自体で)期待どおりに機能しています。しかし、ダブルタップレコグナイザーを機能させることができないようです。
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
{
}