2013-03-22 53 views
7

我添加singTap和doubleTap到一个视图如下面的代码:实施singleTap和doubleTap在Objective-C

-(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?谢谢!

回答

11

告诉单头识别器,它需要双击识别它触发之前失败:

[singleTapGesture requireGestureRecognizerToFail:doubleTapGesture]; 

(这实际上是在UIGestureRecognizer docs for this method典型的例子。)