0

View Controller内に3つのビューがあり、UISegmentControlそれぞれがクリックされると、各ビューが切り替わります。これらはすべて積み重なっており、最初は 2 つが非表示になっていて、他のものの表示/非表示をほとんど切り替えていることに注意してください。

3つのビューのいずれかで領域がタップされると、別のView Controllerが開くように設定しようとしています。ビューコントローラー内の3つのビューすべてに対してこれを行うにはどうすればよいですか? 私のビューはUIImages、テーブル リストを模倣するための一連のビューで構成されています (これはプロトタイプ アプリです)。上部にタイトルバー、検索バー、下部にタブコントローラーがあるため、各ビューが画面全体を占めるわけではありません。

4

2 に答える 2

1

画像 (UIImageView コンポーネント) への参照がある場合は、タップを検出するためにそれらすべてに UITapGestureRecognizer を追加する必要があります。

たとえば、viewDidLoad では次のようになります。

UITapGestureRecognizer *img1TapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(displayViewController1:);
[imageView1 addGestureRecognizer:img1TapGestureRecognizer];

UITapGestureRecognizer *img2TapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(displayViewController2:);
[imageView2 addGestureRecognizer:img2TapGestureRecognizer];

UITapGestureRecognizer *img3TapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(displayViewController3:);
[imageView3 addGestureRecognizer:img3TapGestureRecognizer];

次に、次のメソッドでビュー コントローラーを表示します。

- (void)displayViewController1:(UITapGestureRecognizer *)recog {}
- (void)displayViewController2:(UITapGestureRecognizer *)recog {}
- (void)displayViewController3:(UITapGestureRecognizer *)recog {}
于 2013-08-29T18:54:20.950 に答える
0

これを試して

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  UITouch *touch = [touches anyObject];
  if ([touch view] == yourDesiredImage) {
    // Do something here
  }
}
于 2013-08-29T18:49:25.723 に答える