关于ios:IOS-为什么-UIPanGestureRecognizer-不起作用

如果你设置的 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() {
        //...
    }
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理