我使用:如何检测UITapGestureRecognizer的点击视图?
为了从UITextField
点击其他地方时关闭键盘。
但在我看来,我有UITableView,我必须检测点击UITableView的行时。 由于UITapGestureRecognizer
我的didSelectRowAtIndexPath
函数没有被调用。有什么办法来检测点击的对象是否是UITableViewCell?
我使用:如何检测UITapGestureRecognizer的点击视图?
为了从UITextField
点击其他地方时关闭键盘。
但在我看来,我有UITableView,我必须检测点击UITableView的行时。 由于UITapGestureRecognizer
我的didSelectRowAtIndexPath
函数没有被调用。有什么办法来检测点击的对象是否是UITableViewCell?
您可以从
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
您检测手势的触摸得到手势的thouch事件,这样做的逻辑像波纹管:
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UITextFiled class]])
{
return FALSE;
}
else
{
// here is remove keyBoard code
return TRUE;
}
}
实现此委托方法gestureRecognizerShouldBegin:
,检查并取消手势回调哪些发生在tableview单元格(行)上并触发tableview的委托方法。
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if ([gestureRecognizer.view isKindOfClass:[UITableViewCell class]])
{
return NO;
}
return YES
}
这只显示主视图,但不显示子视图。实际上这是注册到该姿势的视图。 – marcelosalloum
如果以上答案不能解决你的问题,试试这个http://stackoverflow.com/questions/15814697/uitapgesturerecognizer-tap-on-self-view-but-ignore-subviews –