当用户点击我的 UIView 背景的任何部分时,我想得到通知;基本上,如果用户在我的 UIView 上的任何控件(表格、文本字段、按钮等)之外单击。
我该怎么做?我试过这样做:
if ([touch.view isKindOf:[UIView class]]) {
do something....
}
但是,显然所有控件都扩展了 UIView ......所以,我有点卡住了。
当用户点击我的 UIView 背景的任何部分时,我想得到通知;基本上,如果用户在我的 UIView 上的任何控件(表格、文本字段、按钮等)之外单击。
我该怎么做?我试过这样做:
if ([touch.view isKindOf:[UIView class]]) {
do something....
}
但是,显然所有控件都扩展了 UIView ......所以,我有点卡住了。
您应该能够执行以下操作:
backgroundView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHit:)] autorelease];
[backgroundView addGestureRecognizer:tap];
-(void) tapHit:(UITapGestureRecognizer *tap) {
NSLog( @"background tapped" );
}
您可以这样做的一种方法是添加一个单独的背景视图,它是您的 VC 主视图的子视图。你可以简单地让它透明,这样它就不会干扰你的造型。位置在所有其他儿童视图的后面。然后在该视图上注册您的 GR。