私のビューコントローラ内でUISwipeGestureRecognizer
のアクションとしてメソッドを登録しようとしています。ターゲットビューは、UIView
サブクラスで構築したカスタムビューです。スワイプをターゲットにしたい場所です。私が抱えている問題は、アクションをUIViewController
のメソッドに設定する方法がわからないということです。インターフェイスビルダのビューにジェスチャをドラッグ/ドロップした後、アクションをコントローラにドラッグアウトすると、その操作を行うことができます。セレクタがインスタンスメソッドを見つけることができません
func swiped(_ sender: UISwipeGestureRecognizer) {
}
func addGestureToView(_ view: CardView) {
let gesture = UISwipeGestureRecognizer(target: view, action: Selector("swiped:"))
gesture.direction = .up
view.addGestureRecognizer(gesture)
}
私も
let gesture = UISwipeGestureRecognizer(target: view, action: #selector(swiped(_:)))
を使用しようとしてきたこれらのアプローチの両方が私の次の例外与える:キャッチされない例外 'NSInvalidArgumentException' に起因するアプリを終了
を、理由: ' - [testapp.CardView swiped:]:インスタンスに送信された認識できないセレクタ
コントローラ内に存在するメソッドではなく、swiped:
がCardView
ターゲット内にあるためと考えています。ジェスチャー自体を適用しながら、コントローラーをアクションに使用するように指定するにはどうすればいいですかにのみ?
私は自分の答えを更新しました。私は自分の答えを更新しました。**表示**の代わりに**自己**を使用する必要があります** –
変更gesture = UISwipeGestureRecognizer(ターゲット:ビュー、アクション:#selector (_ :)) 〜 letジェスチャー= UISwipeGestureRecognizer(ターゲット:自己、アクション:#セレクタ(スワイプ(_ :)) –