繁体   English   中英

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

[英]How do I detect two fingers tap on the iPhone?

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

如果您可以定位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]

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

如果您的目标不是3.2+:

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

multiTouchEnabled属性设置为YES

如果您的要求允许,请使用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;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM