例如,我有一个视图,我想要两个不同的手势:
点击做动作A.双击做动作B.
问题在于UITapGestureRecognizer我只能设置最小所需的点击次数 . 单击手势识别器在双击手势识别器识别双击之前识别轻击 .
例:
_tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureRecognized:)];
_tapGestureRecognizer.numberOfTouchesRequired = 1;
_tapGestureRecognizer.numberOfTapsRequired = 1;
[self addGestureRecognizer:_tapGestureRecognizer];
_doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapGestureRecognized:)];
_doubleTapGestureRecognizer.numberOfTouchesRequired = 1;
_doubleTapGestureRecognizer.numberOfTapsRequired = 2;
[self addGestureRecognizer:_doubleTapGestureRecognizer];
它总是识别单击,即使我非常快地双击 . 如何设置它以使轻敲手势识别器等待并看到双击手势识别器是否识别?
4 回答
在swift 3和swift 4:
这是我在一个旧项目中使用的,我希望它可以帮助你解决问题 .
在您想要的任何方法中创建手势识别器 . 例如,如果您想在tableView中使用tapView的tap手势,请在里面创建那些点按手势
你的类应该实现UIGestureRecognizerDelegate . 上面提到的是该委托类的2种方法 .
我找到了使用XCode Monkey的答案来解决单击的延迟问题 . 使用此方法,您可以在mili-seconds中配置单击和双击之间的阈值 . 该技术使用简单的UIButton和NSTimer来区分单击和双击 .