浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Swift】端末の画面をダブルタップした時の位置を取得する

今回は、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.xpoint.y で取得できます。
上記を実行した結果、問題なく位置データを取得することができました!

 

以上、Swift で端末の画面をダブルタップした時の位置を取得する方法についてでした。
ご参考になれば幸いです。

  • この記事いいね! (0)