我说的是用同一根手指在屏幕上进行两次单独的触摸
我认为我有正确的编码。但是我几乎不可能在我的iPad上实现双击。是否可以增加单击和双击之间的时间间隔,因此更容易触发。我非常快地进行双击,它只需单击两次即可捕获它。有时候我很幸运能够触发双击。我将UIButton项的子类放入scrollview中。
无论如何,我的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中测试了同样的东西,它的工作方式完全符合预期。
答案 0 :(得分:3)
您的代码同时在视图中检测到两根手指,而不是手指上的快速序列(双击)。
如果您想检测双击,最简单的方法是使用手势识别器。无论在何处设置子类,都要添加以下代码:
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
}
答案 1 :(得分:0)
你没有打电话给[super touchesBegan:touches withEvent:event]
答案 2 :(得分:0)
这篇文章粗略勾勒出我认为正确的答案:double tap in UIButton