我正在使用UILongPressGestureRecognizer。我想知道是否有人曾经想出一种方法来触发达到minimumPressDuration而不必抬起他们的手指。基本上,我们可以触发手势的结束而不必移除手指吗?我们可以用多少时间过去了吗?
谢谢,
科林
答案 0 :(得分:6)
这是UIGestureStateBegan的用途:
-(void)handleGesture:(UILongPressGestureRecognizer *)sender
{
if(sender.state == UIGestureRecognizerStateBegan){
NSLog(@"minimum duration elapsed");
}else if(sender.state == UIGestureRecognizerStateEnded){
NSLog(@"user lifted their finger");
}
}
答案 1 :(得分:0)
.began
状态结束,因此接受的答案对于此问题不正确。过了一段时间,我想通了。
在Swift中回答:
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(_:)))
}
}
这会导致手势在收到.began
状态后停止跟踪触摸,并在长按
这是一个非常古老的问题,但我希望有人会发现它很有用