一、引用 UIGestureRecognizerDelegate
class ViewController: UIViewController ,UIGestureRecognizerDelegate{
二、添加拖动手势到tableview
func initGesture() {
//初始化手势并指定触发事件
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(pan(pan:)))
//设置拖动手势的最大手指数
panGesture.maximumNumberOfTouches = 1
//指定手势委托对象
panGestureRx.delegate = self
tableView.addGestureRecognizer(panGestureRx)
}
///拖动手势触发事件
@objc func pan(pan:UIPanGestureRecognizer) {
//手势当前坐标
let point = pan.location(in: self.view)
//拖动开始
if pan.state == .began {
}
//拖动过程
else if pan.state == .changed {
}
//拖动结束
else if pan.state == .ended {
}
}
三、重写gestureRecognizer方法设置表格的不同手势可以同时触发
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
if (otherGestureRecognizer.view?.isKind(of: UITableView.self))! {
return true
}
return false
}