2014-10-09 46 views
0

我開發了一個由6層並排構成立方體類型結構的3d立方體。我使用觸摸事件獲得單擊,但雙擊不起作用。如何查找CALayer是否在ios中雙擊

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if ([touches count] == 1) 
    { 
     NSLog(@"Single tap"); 
    } 
    if ([touches count] == 2) 
    { 
     NSLog(@"Double tap"); // Not Working 
    } 
} 

如何獲得雙擊工作?

+0

點擊?用鼠標?或者你的意思是竊聽? :P – Fogmeister 2014-10-09 10:43:41

+0

我的意思是雙擊。 – 2014-10-09 10:55:09

回答

2

除了能夠識別你的應用程序的點按手勢,你會 可能要區分一個水龍頭,雙擊,甚至 三敲擊。使用觸摸的tapCount屬性來確定用戶點擊視圖的次數 。

在NSSet中返回的每個觸摸都不完全是一個水龍頭。操作系統識別雙擊並將它作爲一個UITouch,所以你可以嘗試使用處理結束後觸摸事件:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    for (UITouch *aTouch in touches) { 
     if (aTouch.tapCount >= 2) { 
      // The view responds to the tap 
      [self respondToDoubleTapGesture:aTouch]; 
     } 
    } 
} 

如果仍然無法正常工作,您正在使用UITapGestureRecognizer看看在酒店numberOfTapsRequired。如果它被設置爲1,試圖將其更改爲2

yourTapRecognizer.numberOfTapsRequired = 2; 

Apple Dev documentation也可以幫助你瞭解如何將UIGestureRecognizer小號正確使用。