我正在谈论用同一根手指在屏幕上进行两次单独触摸
我想我对此有编码权。但实际上我几乎不可能在iPad上双击。是否可以增加单击和双击之间的时间间隔,因此更容易触发。我非常快速地双击,它将其捕获为两次单击。只有有时候我很幸运地触发了双击。我将UIButton项目的子类放入滚动视图。
无论如何,我的UIButton子类实现了:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
NSLog(@"Touch count:%d",touch.tapCount);
if (touch.tapCount == 1)
{
//Do things for one touch
}
else if (touch.tapCount == 2)
{
//Do things for double touch
}
}
这正在捕获事件。这就是为什么我认为我的代码是正确的,我只是找不到与UIEvent有关的东西以及确定发生了多少次触摸的原因。我在不同的UIView中测试了同样的东西,它完全按预期工作。
最佳答案
您的代码正在同时检测视图中的两个手指,而不是快速按动手指(双击)。
如果要检测双击,最简单的方法是使用手势识别器。无论在何处安装子面板,请添加以下代码:
UITapGestureRecognizer *singleFingerDoubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleFingerDoubleTap:)];
singleFingerDoubleTap.numberOfTouchesRequired = 1;
singleFingerDoubleTap.numberOfTapsRequired = 2;
[self addGestureRecognizer:singleFingerDTap];
[singleFingerDTap release];
并实现处理双击的方法:
-(void)handleSingleFingerDoubleTap:(id)sender {
//Do stuff
}