私はサブクラス化されたUIGestureRecognizerを追加したUIView
を持っている状況にあります。私は次のコードを使用しています。UIGestureRecognizerとUILongPressGestureRecognizerをサブクラス化する
class ButtonGestureRecognizer: UIGestureRecognizer {
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent) {
//
state = .began
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent) {
//
state = .ended
}
}
これは私がリリースされたとき、それが戻って通常のサイズに押されたときに、私はUIView
大規模に使用しています「ダウン」タッチ「アップ」とタッチイベントを、キャプチャすることができます。
また、同じビューには、UILongPressGestureRecognizer
を追加する必要があります。また、押されたときにスケールアップされ、リリース時に通常のサイズに戻りますが、別のアクションを実行します。
しかし、サブクラス化されたジェスチャー認識ツールは、UILongPressGestureRecognizerの動作を妨げているようです。私が今までに見つけた唯一の解決策は、サブクラス化されたジェスチャ認識器をあきらめ、UITapGestureRecognizer
(最小タップを1に設定する必要があります)とUILongPressGestureRecognizer
を使用していますが、タップ/終わりの状態。
これはどうしてですか?ありがとう!
ありがとうございます。私はこの方法を知らなかった。 'UIView'を' UIGestureRecognizerDelegate'プロトコルに準拠させ、参照メソッドを追加し、 'UIView'をデリゲートに設定しました。 – ZbadhabitZ