如何在iPhone上检测到两根手指?

时间:2010-04-25 03:21:50

标签: iphone objective-c multi-touch

如何检测iPhone上的两根手指?

4 个答案:

答案 0 :(得分:12)

如果您可以定位OS 3.2或更高版本,则可以使用UITapGestureRecognizer。它非常易于使用:只需配置它并将其附加到视图中即可。执行手势时,它将触发gestureRecognizer目标的动作。

示例:

UITapGestureRecognizer * r = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewWasDoubleTapped:)];
[r setNumberOfTapsRequired:2];
[[self view] addGestureRecognizer:r];
[r release];

然后,您只需实施- (void) viewWasDoubleTapped:(id)sender方法,并在[self view]被双击时调用。

修改

我刚刚意识到你可能正在谈论用两根手指检测一个水龙头。如果是这种情况,你可以做到

[r setNumberOfTouchesRequired:2]

这种方法的主要优点是您不必创建自定义视图子类

答案 1 :(得分:4)

如果你没有定位3.2 +:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    if ([touches count] == 2) {
        //etc
    }
}

答案 2 :(得分:2)

multiTouchEnabled属性设置为YES

答案 3 :(得分:0)

如果您的要求允许,请使用UITapGestureRecognizer。否则,在自定义UIView中实现以下UIResponder方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

全程跟踪以查看有多少次触摸以及它们是否移动超过您的敲击/拖动阈值。您必须实现所有四种方法。