我希望在用户点击我的UIView背景的任何部分时收到通知;基本上,如果用户点击我的UIView上的任何控件(表格,文本字段,按钮等)之外。
我该如何解决?我试过这样做:
if ([touch.view isKindOf:[UIView class]]) {
do something....
}
但是,显然所有控件都扩展了UIView ......所以,我有点卡住了。
答案 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。