我将singTap和doubleTap添加到类似以下代码的 View 中:

-(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也将触发。 doubleTap时如何禁用singleTap?谢谢!

最佳答案

告诉单键识别器,它要求双键识别器在触发之前失败:

[singleTapGesture requireGestureRecognizerToFail:doubleTapGesture];

(这实际上是UIGestureRecognizer docs for this method中的规范示例。)

09-27 03:28