iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

【Swift】iOSデバイスでタッチした位置(座標)を取得する方法

iOSアプリ開発では、ユーザーが画面をタッチした位置(座標)を取得したい場面がよくあります。この記事では、Swiftを使ってiOSデバイス上のタッチ位置を取得する方法を、初心者の方にもわかるように手順を追って解説します。

ステップ1:プロジェクトの作成

Xcodeを起動し、「File」→「New」→「Project」からSingle View Applicationを選択します。プロジェクト名は「TouchMe」としましょう。

ステップ2:ラベルの配置

Main.storyboardを開き、以下の画像のようにラベルを1つ追加します。このラベルに、取得したタッチ位置の座標を表示します。

【Swift】iOSデバイスでタッチした位置(座標)を取得する方法

ステップ3:@IBOutletの接続

配置したラベルに対して@IBOutletを作成し、touchPositionLabelという名前を付けます。これにより、コードからラベルを操作できるようになります。

ステップ4:touchesBeganメソッドのオーバーライド

次に、ViewController内でtouchesBeganメソッドをオーバーライドして、ビュー上のタッチ位置を取得できるようにします。以下のコードを参考に実装してください。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if let touch = event?.allTouches?.first {
        let loc:CGPoint = touch.location(in: touch.view)
        self.touchPositionLabel.text = " X:\(loc.x) Y:\(loc.y) "
    }
}

コードの解説

touchesBeganメソッドは、ユーザーが画面上のどこかをタッチした瞬間に自動的に呼び出されます。引数として渡されるイベント(event)の中には、発生したすべてのタッチ情報が含まれています。

今回は event?.allTouches?.first を使って、最初のタッチポイントのみを取り出して表示しています。複数本指での同時タッチ(マルチタッチ)がある場合でも、最初の指の位置だけを処理するシンプルな実装です。

eventはオプショナル型であるため、if…let構文で安全に値をアンラップしています。これにより、イベントが存在しない場合にもクラッシュを防ぐことができます。

続く let loc:CGPoint = touch.location(in: touch.view) の行では、タッチされたビュー内における座標をCGPoint型として取得しています。取得したX座標・Y座標は、文字列補間を使ってラベルに表示されます。

実行結果の確認

以上でタッチ位置の取得は完成です。プロジェクトをビルドして実行し、シミュレーターまたは実機の画面上の好きな場所をタッチしてみてください。ラベルに以下のようにタッチした地点のX座標とY座標がリアルタイムで表示されます。

【Swift】iOSデバイスでタッチした位置(座標)を取得する方法

この仕組みを応用すれば、ドラッグ操作の追跡やカスタムジェスチャーの実装など、インタラクティブなUIの開発にもつなげることができます。

  1. iOS 15の入手方法|iPhoneへのインストール手順と注意点を徹底解説

    Appleは毎年、iPhone全機種に搭載されるオペレーティングシステム「iOS」の大型アップデートを発表します。メジャーバージョンの更新では、新機能の追加、インターフェースの改良、重要なセキュリティパッチの適用が行われます。しかも、そのすべてが無料で利用できるのが魅力です。 最新バージョンとなるiOS 15は、2021年9月20日よりダウンロードとインストールが可能になりました。この記事では、iPhoneにiOS 15をインストールする方法を詳しく解説し、アップデート時に遭遇しがちなトラブルへの対処法もあわせてご紹介します。 iOS 15はいつ配信される? 米国では太平洋夏時間(PDT)の午

  2. ルート化不要!Androidスマホで3Dタッチ風のクイック操作を実現する方法

    iPhoneの3Dタッチとは?その便利さ 3Dタッチは、iPhone 6s以降のモデルに搭載された魅力的な機能です。これらの端末には圧力センサーが内蔵されており、アプリのアイコンを強めに押し込むと、ショートカットメニューなど新しい操作オプションが表示されます。 つまり、アプリを起動しなくてもその機能を利用できるということです。さらに、アイコンを長押しするだけでアプリを素早くアンインストールできる点も大きなメリットです。 Androidでも3Dタッチは再現できる 友人がiPhone 6s以降でこの機能を使っているのを見たことはありませんか?実は、こうした「押し込んで操作する」感覚は、Andro