如何处理UITableView的非单元格区域的点击

Jak*_*ake 2 objective-c uitableview ios uitapgesturerecognizer

我有UITableView几个UITableViewCells在里面.因为我只有几个单元格,所以表格视图的某个区域没有被单元格覆盖.我想在点击空白区域时做点什么.

我尝试UITapGestureRecognizer在表视图上添加一个.它检测到空区域的敲击,但随后细胞无法响应敲击.我尝试在表视图的超级视图上添加点击手势识别器,但结果是一样的.

必须有办法做到这一点,但我还不能弄明白.有没有办法实现我想做的事情?

kas*_*kad 7

试试这个:初始化并将UITapGestureRecognizer添加到tableView:

UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc]  initWithTarget:self action:@selector(tap:)];
gr.delaysTouchesBegan = YES;
gr.delegate = self;
[_tableView addGestureRecognizer:gr];
Run Code Online (Sandbox Code Playgroud)

实现手势识别器委托方法:

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
    CGPoint tapPoint = [gestureRecognizer locationInView:_tableView];
    UIView * clickedView = [_tableView hitTest:tapPoint withEvent:nil];
    NSString *viewClassName = NSStringFromClass(clickedView.class);
    return ![viewClassName hasPrefix:@"UITableViewCell"];
}
Run Code Online (Sandbox Code Playgroud)

这样一来,你所做的每个水龙头都会超出细胞(但在桌面视图内)会被你的 UITapGestureRecognizer