UITapGestureRecognizers
ビューに2 つ追加しようとしています。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
{
}