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

您可以这样做的一种方法是添加一个单独的背景视图,它是您的 VC 主视图的子视图。你可以简单地让它透明,这样它就不会干扰你的造型。位置在所有其他儿童视图的后面。然后在该视图上注册您的 GR。

于 2011-10-24T22:14:45.637 回答