[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() {
        //...
    }
}

如果以上内容对你有所帮助,请在这些平台上关注我吧,谢谢。o( ̄▽ ̄)d

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容