2013-03-22 17 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典型的例子。)