StoryboardでViewController上に設置したViewとImageViewからそれぞれタッチイベントを取ります。
今回使ったViewControllerはこんな感じ。
赤い部分がUIViewが置いてあるところ。緑色の部分が、UIImageViewが置いてあるところ。
下のTableView部分は関係ないので気にしないでください。
さて、コードを書きます。
すごく簡単です。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。