繁体   English   中英

检测桌面上的长按

[英]Detect long press on tableview

我知道如何简单地检测长按,但它在释放后检测。 如何在不松开手指的情况下检测长按?

这是我现在用于长按的代码:

override func viewDidLoad() {
    super.viewDidLoad()
    setupLongPressGesture()
}

func setupLongPressGesture() {
    let longPressGesture:UILongPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(self.handleLongPress))
    longPressGesture.minimumPressDuration = 1.0 // 1 second press
    longPressGesture.delegate = self
    self.tableView.addGestureRecognizer(longPressGesture)
}

@objc func handleLongPress(_ gestureRecognizer: UILongPressGestureRecognizer){
    if gestureRecognizer.state == .ended {
        let touchPoint = gestureRecognizer.location(in: self.tableView)
        if let indexPath = tableView.indexPathForRow(at: touchPoint) {

        }
    }
}

.ended改为.began

UILongPressGestureRecognizer的文档中:

长按手势是连续的。 手势开始 ( UIGestureRecognizer.State.began ) 当允许的手指数量 ( numberOfTouchesRequired ) 按下指定时间段 ( minimumPressDuration ) 并且触摸没有超出允许的移动范围 ( allowableMovement ) 时,手势开始 ( UIGestureRecognizer.State.began )。 每当手指移动时,手势识别器就会转换到 Change 状态,并在任何手指抬起时结束( UIGestureRecognizer.State.ended )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM