UILongPressGesture 处理运动而不是长按
Posted
技术标签:
【中文标题】UILongPressGesture 处理运动而不是长按【英文标题】:UILongPressGesture working on movement not on long press 【发布时间】:2018-02-12 08:23:14 【问题描述】:我正在尝试将 UILongPressGesture 添加到单元格中。它有效,但只有当我长按并朝任何方向移动时。 它应该在长按时调用选择器方法,但是当我长按并开始移动时它正在调用。我也在处理手势的状态,但直到我长按并开始移动,选择器才会调用。
我也尝试向单元格的内容视图及其 UIlable 元素添加手势,但没有成功。
let longPressGesture: UILongPressGestureRecognizer =
let gesture = UILongPressGestureRecognizer()
gesture.addTarget(self, action: #selector(MyViewController.handleLongPressGetureForRow(_:)))
gesture.delaysTouchesBegan = false
gesture.cancelsTouchesInView = false
gesture.numberOfTouchesRequired = 1
gesture.minimumPressDuration = 0.2
return gesture
()
cell.addGestureRecognizer(longPressGesture)
cell.tag = indexPath.row
Cells where adding gesture
请帮助我。提前致谢。
【问题讨论】:
【参考方案1】:在func
之前用@objc
代替handleLongPressGetureForRow(_:)
改为self.handleLongPressGetureForRow(v:)
let longPressGesture: UILongPressGestureRecognizer =
let gesture = UILongPressGestureRecognizer()
gesture.addTarget(self, action: #selector(self.handleLongPressGetureForRow(v:)))
gesture.delaysTouchesBegan = false
gesture.cancelsTouchesInView = false
gesture.numberOfTouchesRequired = 1
gesture.minimumPressDuration = 0.2
return gesture
()
cell.addGestureRecognizer(longPressGesture)
cell.tag = indexPath.row
return cell
@objc func handleLongPressGetureForRow(v: UILongPressGestureRecognizer )
print("saghsaghghsgfsgsaghghsaghsaghghsaghashgsasa")
【讨论】:
我已经添加了 @objc,没有 @objc 它会产生编译时错误。并且使用self.handleLongPressGestureForRow(_:)
而不是MyViewcontroller.handleLongPressGestureForRow(_:)
并不能解决问题。我已经提到它正在工作,但只有当我长按后开始移动时。以上是关于UILongPressGesture 处理运动而不是长按的主要内容,如果未能解决你的问题,请参考以下文章
目标 C:滚动视图上的 UILongPressGesture
Gazebo学习随记4 Actor: 该配合你的演出我视而不见