iOS:检测长按而不移除手指
我正在使用UILongPress手势识别器。我想知道是否有人想出了一种方法,在达到minimumPressDuration时不必抬起手指就能触发。基本上,我们能在不移动手指的情况下触发手势的结束吗?我们能用过去的时间吗 谢谢iOS:检测长按而不移除手指,ios,uigesturerecognizer,Ios,Uigesturerecognizer,我正在使用UILongPress手势识别器。我想知道是否有人想出了一种方法,在达到minimumPressDuration时不必抬起手指就能触发。基本上,我们能在不移动手指的情况下触发手势的结束吗?我们能用过去的时间吗 谢谢 柯林这就是UIgestureStateStart的目的: -(void)handleGesture:(UILongPressGestureRecognizer *)sender { if(sender.state == UIGestureRecognizerStat
柯林这就是UIgestureStateStart的目的:
-(void)handleGesture:(UILongPressGestureRecognizer *)sender
{
if(sender.state == UIGestureRecognizerStateBegan){
NSLog(@"minimum duration elapsed");
}else if(sender.state == UIGestureRecognizerStateEnded){
NSLog(@"user lifted their finger");
}
}
.begined
当用户抬起手指时,状态结束,因此接受的答案对于此问题不正确。过了一段时间,我明白了。
迅速回答:
var gesture = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:)))
func handleLongPress(){
//do something
gesture.addTarget(self, action: #selector(longPress(_:)))
}
@objc func longPress(_ sender: UILongPressGestureRecognizer) {
if sender.state == .began {
handleLongPress()
gesture.removeTarget(self, action: #selector(longPress(_:)))
}
}
这将导致手势在接收到.start
状态后停止跟踪触摸,并在长按后完成所需操作后重新启用
这是一个很老的问题,但我希望有人会觉得它有用我不认为你可以,但是做一个自定义手势很容易,如果你需要帮助,我可以发布一个答案,说明如何使用it@danhUIGestureRecognitizerStateRecognited在值上等同于UIGestureRecognitizerStateEnded,并且仅当用户抬起手指时才会触发Yes,的确我将删除我的评论,很抱歉添加了混淆。太棒了!通过阅读文档,我认为开始状态是用户第一次点击屏幕时的状态。谢谢