Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何检测UITapGestureRecognizer';单击的视图是什么?_Ios_Xcode5_Uitableview_Uitapgesturerecognizer - Fatal编程技术网

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
my
DidSelectRowatineXpath
函数,因此。有没有办法检测单击的对象是否为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

}

如果上面的答案不能解决您的问题,请尝试此答案如果上面的答案不能解决您的问题,请尝试此答案此答案将仅显示主视图,而不显示其子视图。实际上,这是注册到手势的视图。这将只显示主视图,而不显示其子视图。实际上,这是注册到手势的视图。