2014-10-09 24 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小号正确使用。

相关问题