[英]How do I detect if there is a tap on right or left side of the iPhone screen?
[英]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.