UITapGestureRecognizer识别主视图上的点击(不是输入或按钮)

时间:2011-10-24 22:08:44

标签: ios uigesturerecognizer uitapgesturerecognizer

我希望在用户点击我的UIView背景的任何部分时收到通知;基本上,如果用户点击我的UIView上的任何控件(表格,文本字段,按钮等)之外。

我该如何解决?我试过这样做:

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

但是,显然所有控件都扩展了UIView ......所以,我有点卡住了。

2 个答案:

答案 0 :(得分:2)

您应该能够执行以下操作:

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

-(void) tapHit:(UITapGestureRecognizer *tap) {
  NSLog( @"background tapped" );
}

答案 1 :(得分:1)

您可以这样做的一种方法是添加一个单独的背景视图,该视图是VC主视图的子视图。您可以简单地使其透明,这样就不会影响您的样式。地方是所有其他儿童观点的背后。然后在该视图上注册您的GR。