👻

iOS | タップした瞬間と指を離した瞬間を検知する(TouchDown と TouchUp)

2022/07/11に公開

UILongPressGestureRecognizer を使う

UILongPressGestureRecognizer でロングタップを検知し、minimumPressDuration = 0 にする(ロングタップが認識されるまでの時間を 0 にする)ことで、タップした瞬間を検知できます。

let recognizer = UILongPressGestureRecognizer(target: self, action: #selector(didLongTap(gesture:)))
recognizer.minimumPressDuration = 0
view.addGestureRecognizer(recognizer)

あとは selector で指定したメソッドの方でタップした瞬間や指を離した瞬間で実行したい処理を記述します。

@objc private func didLongTap(gesture: UITapGestureRecognizer) {
    if gesture.state == .began {
        // タップした瞬間を検知
    }
    if gesture.state == .ended {
        // 指を離した瞬間を検知
    }
}

Discussion