LoginSignup
14
14

More than 5 years have passed since last update.

UIViewControllerに設置した複数のViewからタッチイベントを取る

Posted at

StoryboardでViewController上に設置したViewとImageViewからそれぞれタッチイベントを取ります。

今回使ったViewControllerはこんな感じ。
赤い部分がUIViewが置いてあるところ。緑色の部分が、UIImageViewが置いてあるところ。
下のTableView部分は関係ないので気にしないでください。
iOSシミュレータのスクリーンショット-2013.06.05-20.36.02.png

さて、コードを書きます。
すごく簡単です。UIViewControllerに以下の内容でtouchesBegan:withEvent:をオーバーライド(コピペ)するだけ。

// タッチイベントを取る
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    switch (touch.view.tag) {
        case 1:
            // タグが1のビュー
            NSLog(@"ImageViewに触った");
            break;
        default:
            // それ以外
            NSLog(@"Viewに触った");
            break;
    }
}

あとはタグの設定と、UIImageViewはタッチイベントを取ってくれないので、そこも直します。
Storyboardで該当のUIImageViewを選択したら、まずタグを1にして、次にInteractionのところにチェックを入れます。これでUIImageViewでもタッチイベントを取ってくれますYO。
スクリーンショット 2013-06-05 20.36.48.png

シュミレーターでViewやImageViewをタッチしてみた。
ログはこんな感じ。
スクリーンショット 2013-06-05 20.36.21.png

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14