[IOS]なぜUIpanGestureRecognizerが機能しないのですか?

707 ワード

あなたが設定した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() {
        //...
    }
}