[英]iOS: Detect long press without removing finger
我正在使用UILongPressGestureRecognizer。 我想知道是否有人想出了一種方法,可以在達到minimumPressDuration時觸發而不用松開手指。 基本上,我們可以觸發手勢的結束而不必移開手指嗎? 我們能用多少時間過去嗎?
謝謝,
科林
那就是UIGestureStateBegan的目的:
-(void)handleGesture:(UILongPressGestureRecognizer *)sender
{
if(sender.state == UIGestureRecognizerStateBegan){
NSLog(@"minimum duration elapsed");
}else if(sender.state == UIGestureRecognizerStateEnded){
NSLog(@"user lifted their finger");
}
}
當用戶抬起手指時, .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
狀態后停止跟蹤觸摸,並在長按之后完成您想做的所有操作后重新啟用它
這是一個很老的問題,但我希望有人會覺得有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.