如何查找CALayer是否在ios中双击
问题描述:
我开发了一个由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
}
}
如何获得双击工作?
答
除了能够识别你的应用程序的点按手势,你会 可能要区分一个水龙头,双击,甚至 三敲击。使用触摸的
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
小号正确使用。
点击?用鼠标?或者你的意思是窃听? :P – Fogmeister 2014-10-09 10:43:41
我的意思是双击。 – 2014-10-09 10:55:09