【Swift】iOSデバイスでタッチした位置(座標)を取得する方法
iOSアプリ開発では、ユーザーが画面をタッチした位置(座標)を取得したい場面がよくあります。この記事では、Swiftを使ってiOSデバイス上のタッチ位置を取得する方法を、初心者の方にもわかるように手順を追って解説します。
ステップ1:プロジェクトの作成
Xcodeを起動し、「File」→「New」→「Project」からSingle View Applicationを選択します。プロジェクト名は「TouchMe」としましょう。
ステップ2:ラベルの配置
Main.storyboardを開き、以下の画像のようにラベルを1つ追加します。このラベルに、取得したタッチ位置の座標を表示します。

ステップ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座標がリアルタイムで表示されます。

この仕組みを応用すれば、ドラッグ操作の追跡やカスタムジェスチャーの実装など、インタラクティブなUIの開発にもつなげることができます。
-
iOS 15の入手方法|iPhoneへのインストール手順と注意点を徹底解説
Appleは毎年、iPhone全機種に搭載されるオペレーティングシステム「iOS」の大型アップデートを発表します。メジャーバージョンの更新では、新機能の追加、インターフェースの改良、重要なセキュリティパッチの適用が行われます。しかも、そのすべてが無料で利用できるのが魅力です。 最新バージョンとなるiOS 15は、2021年9月20日よりダウンロードとインストールが可能になりました。この記事では、iPhoneにiOS 15をインストールする方法を詳しく解説し、アップデート時に遭遇しがちなトラブルへの対処法もあわせてご紹介します。 iOS 15はいつ配信される? 米国では太平洋夏時間(PDT)の午
-
ルート化不要!Androidスマホで3Dタッチ風のクイック操作を実現する方法
iPhoneの3Dタッチとは?その便利さ 3Dタッチは、iPhone 6s以降のモデルに搭載された魅力的な機能です。これらの端末には圧力センサーが内蔵されており、アプリのアイコンを強めに押し込むと、ショートカットメニューなど新しい操作オプションが表示されます。 つまり、アプリを起動しなくてもその機能を利用できるということです。さらに、アイコンを長押しするだけでアプリを素早くアンインストールできる点も大きなメリットです。 Androidでも3Dタッチは再現できる 友人がiPhone 6s以降でこの機能を使っているのを見たことはありませんか?実は、こうした「押し込んで操作する」感覚は、Andro