GestureRecognizer不适用于Tableview Dropdown dismiss

时间:2017-02-24 05:29:53

标签: ios objective-c uitableview

我正在使用UITableView下拉单击按钮,您可以在下面的图片中找到该按钮。这里我的问题是,如果用户想要点击tableView的一面。下拉需要解雇。我正在使用UIScrollView。我尝试过代码

 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)]; 
  tap.cancelsTouchesInView=NO;
  [self.view addGestureRecognizer:tap];

但它不起作用。

这是图片

Here is the image

4 个答案:

答案 0 :(得分:0)

试试这样:

UIGestureRecognizer添加到UIScrollView

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissTableView)];

[self.scrollView addGestureRecognizer:tap];

方法dismissTableView

-(void) dismissTableView 
{
    aTableView.hidden = YES;
}

aTableView是tableView的对象。

每当您点击按钮时都会aTableView.hidden = NO;

答案 1 :(得分:0)

首先,当你触摸桌面视图时,你应该检查手势是否正在工作,我认为不是。问题是你的滚动视图正在吃掉所有触摸事件。尝试在滚动视图上添加点按手势,因为它肯定会起作用。像这样。

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] 
initWithTarget:self action:@selector(handleTap:)];

singleTap.cancelsTouchesInView = NO;

[scrollView addGestureRecognizer:singleTap];

答案 2 :(得分:0)

我在这里得到了答案......

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];

tap.delegate=self;

[self.scrollView addGestureRecognizer:tap];

使用此UIGestureDelegate方法...

-(BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch{

if ([touch.view isDescendantOfView:_Tableobj]) 
{

    return NO;

}else{

    return YES;

}

键盘板解散方法......

-(void)dismissKeyboard{


    [_Tableobj setHidden:YES];
}

答案 3 :(得分:-1)

试试这个:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

     // hide your table view or resignFirstResponder of textfield

}