如何检测iPhone上的两根手指?
答案 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;
全程跟踪以查看有多少次触摸以及它们是否移动超过您的敲击/拖动阈值。您必须实现所有四种方法。