Ios 如何检测UITapGestureRecognizer';单击的视图是什么?
我正在使用:Ios 如何检测UITapGestureRecognizer';单击的视图是什么?,ios,xcode5,uitableview,uitapgesturerecognizer,Ios,Xcode5,Uitableview,Uitapgesturerecognizer,我正在使用: UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)]; [self.view addGestureRecognizer:tap]; 为了在单击UITextField的任何其他位置
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissKeyboard:)];
[self.view addGestureRecognizer:tap];
为了在单击UITextField
的任何其他位置时关闭键盘
然而,在我的视图中,我有UITableView,我必须检测何时单击UITableView的行。
由于未调用
UITapGestureRecognizer
myDidSelectRowatineXpath
函数,因此。有没有办法检测单击的对象是否为UITableViewCell?您可以从
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
您可以检测到手势的触碰,因此可以像下面这样进行逻辑操作:
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UITextFiled class]])
{
return FALSE;
}
else
{
// here is remove keyBoard code
return TRUE;
}
}
你可以从中获得这种手势事件
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
您可以检测到手势的触碰,因此可以像下面这样进行逻辑操作:
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UITextFiled class]])
{
return FALSE;
}
else
{
// here is remove keyBoard code
return TRUE;
}
}
实现此委托方法
手势识别器应开始:
,检查并取消在tableview单元格(行)上发生的手势回调,并触发tableview的委托方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if ([gestureRecognizer.view isKindOfClass:[UITableViewCell class]])
{
return NO;
}
return YES
}
实现此委托方法
手势识别器应开始:
,检查并取消在tableview单元格(行)上发生的手势回调,并触发tableview的委托方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if ([gestureRecognizer.view isKindOfClass:[UITableViewCell class]])
{
return NO;
}
return YES
}
如果上面的答案不能解决您的问题,请尝试此答案如果上面的答案不能解决您的问题,请尝试此答案此答案将仅显示主视图,而不显示其子视图。实际上,这是注册到手势的视图。这将只显示主视图,而不显示其子视图。实际上,这是注册到手势的视图。