[英]Disable didSelectRowAtIndexPath on Long press gesture on Tableview Cell
[英]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.