7

以下のコードのように、ビューに singTap と doubleTap を追加します。

-(void)awakeFromNib{
    [self setUserInteractionEnabled:YES];
    //
    UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTapGesture:)];
    doubleTapGesture.numberOfTapsRequired = 2;
    [self addGestureRecognizer:doubleTapGesture];

    UITapGestureRecognizer *singleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGesture:)];
    singleTapGesture.numberOfTapsRequired = 1;
    [self addGestureRecognizer:singleTapGesture];
}

-(void)handleSingleTapGesture:(UITapGestureRecognizer *)singleTapGesture{
    [[self delegate] singleTapOnView];
}

-(void)handleDoubleTapGesture:(UITapGestureRecognizer *)doubleTapGesture{
    [[self delegate] doubleTapOnView];
}

doubleTap の場合、singleTap も起動します。ダブルタップ時にシングルタップを無効にする方法は? ありがとう!

4

1 に答える 1

11

シングルタップ認識エンジンに、トリガーする前にダブルタップ認識エンジンが失敗する必要があることを伝えます。

[singleTapGesture requireGestureRecognizerToFail:doubleTapGesture];

(これは実際には、このメソッドの UIGestureRecognizer ドキュメントの正規の例です。)

于 2013-03-22T01:51:24.700 に答える