恥ずかしげもなく技術ブログ

プログラミング等について書いていきます.

UIImageView上でタップされた位置を検出する

最近iOSで開発する機会がありましたので勉強中.

タップされた位置をどう取るのかわからなかったので色々調べてやってみた.

 

(1) 準備

StoryBoard上でImage Viewを配置し,画像を適当に設置します.

画像の置き方はxcodeで見た自分のフォルダにファインダからファイルをドロップして,

ImageViewのプロパティのうち一番上にあるImageフォームから画像を選択するだけ.

ImageViewをCtrl + ドラッグしてinterfaceの適当なところに配置してください.

名前はimgViewとしました.

 

(2) Gestureの配置

次にImage Viewと同じところにあるTap Gesture Recognizerを引っ張ってきて

先ほど配置したImageViewに重なるようにドロップします.

するとそのアイコンが編集中のiPhone画面の下に追加されると思います.

 

(3) ヒモ付

アシスタント画面に変えて先ほど追加されたGestureのアイコンをCtrl + クリックしながらソースコードのinterfaceに配置.名前はmyTapperとしました.

同じ操作をもう一度implementationの中の適当なところに配置.

名前は適当で.私はhandleTapとしました.

 

(4) 位置情報の取得

このメソッドはImageViewをタップされるたびに呼ばれます.

タップされた位置は

CGPoint loc = [self.myTapper locationOfTouch:inView:self.imgView];

でタップ操作のうち一番目の位置を取得できます.

NSLog(@"%f,%f", loc.x, loc.y);

でタップされた位置を確認することができます.