1

ユーザーが UIView の背景のいずれかの部分をクリックしたときに通知を受け取りたいです。基本的に、ユーザーが UIView にあるコントロール (テーブル、テキストフィールド、ボタンなど) の外側をクリックした場合。

どうすればいいですか?私はこれをやってみました:

if ([touch.view isKindOf:[UIView class]]) {
    do something....
}

しかし、明らかにすべてのコントロールが UIView を拡張しています...だから、私は少し立ち往生しています。

4

2 に答える 2

2

次のことができるはずです。

backgroundView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHit:)] autorelease];
[backgroundView addGestureRecognizer:tap];

-(void) tapHit:(UITapGestureRecognizer *tap) {
  NSLog( @"background tapped" );
}
于 2011-10-25T03:02:23.397 に答える
1

これを行う 1 つの方法は、VC のメイン ビューの子である別の背景ビューを追加することです。スタイリングの邪魔にならないように、透明にするだけです。場所は、他のすべての子供たちのビューの後ろにあります。次に、そのビューに GR を登録します。

于 2011-10-24T22:14:45.637 に答える