今回は、Swift で画面をダブルタップした際に、その位置を取得する方法についてです。
参考にさせていただいた記事はこちらから。
[SwiftUI] ロングタップした位置をViewに伝える方法 – Qiita
https://qiita.com/maxmaxastea/items/ad1220a8fd06f67c1121
上記の記事は、ロングタップした時の位置を取得していますが、位置の取得自体は同じ処理で行う事ができました。
サンプルコードは下記の通りです。
class SampleViewController: UIViewController, UIGestureRecognizerDelegate { override func viewDidLoad() { super.viewDidLoad() self.setDoubleTapGesture() } func setDoubleTapGesture() { let tapGesture: UITapGestureRecognizer = UITapGestureRecognizer( target: self, action: #selector(tapped(_:))) tapGesture.delegate = self tapGesture.numberOfTapsRequired = 2 // ダブルタップで反応 self.view.addGestureRecognizer(tapGesture) } @objc func tapped(_ sender: UITapGestureRecognizer){ let point = sender.location(in: sender.view) print("x: \(point.x), y: \(point.y)") } }
画面がダブルタップされたら、tapped()
関数が呼び出され、その中で位置データを取得しています。
16行目がその処理にあたります。
あとは、X座標と Y座標がそれぞれ point.x
と point.y
で取得できます。
上記を実行した結果、問題なく位置データを取得することができました!
以上、Swift で端末の画面をダブルタップした時の位置を取得する方法についてでした。
ご参考になれば幸いです。