如果你设置的 UIPanGestureRecognizer 不起作用,可能是因为 UIPanGestureRecognizer 初始化形式不对。
如上面代码所示,如果你在成员变量外面初始化,并且指定 target 为 self,这会导致 onPan 办法无奈被调用。
class YourView: UIView { var uiPan = UIPanGestureRecognizer(target: self, action: #selector(onPan)) init() { addGestureRecognizer(uiPan) } @objc func onPan() { //... }}
能够抉择先初始化,随后在绑定 target。
上面的代码将会失常工作。
class YourView: UIView { var uiPan = UIPanGestureRecognizer() init() { uiPan.addTarget(self, action: #selector(onPan)) addGestureRecognizer(uiPan) } @objc func onPan() { //... }}