我实现了 UITableView,其中每个单元格都包含一些按钮 为了检测用户是否点击了表格,我添加了 UITapGestureRecognizer。
我希望单元格中的按钮在用户点击它们时不执行任何操作。 我已经实现了这个选择器:
- (void) backgroundTouched:(UITapGestureRecognizer*)sender {
UIView *view = sender.view;
NSLog(@"backgroundTouched %@", view);
}
我发现,当我点击表格上的任何位置时,该选择器都会被调用,除非我点击 UITableViewCell 中包含的任何按钮。
我怎样才能避免这种情况?
这是创建 UITapGestureRecognizer 的代码:
pragma mark UISearchControllerDelegate
- (void)didPresentSearchController:(UISearchController *)searchController
{
NSLog(@"didPresentSearchController");
self.cancelGesture = [UITapGestureRecognizer new];
[self.cancelGesture addTarget:self action:@selector(backgroundTouched:)];
self.cancelGesture.cancelsTouchesInView = YES;
[self.tableView addGestureRecognizer:self.cancelGesture];
}
最佳答案
如果您不希望按钮执行任何操作,请禁用按钮的 userInteractionEnabled。
cell.addCashButton.userInteractionEnabled = NO;
关于ios - UITapGestureRecognizer 不会取消 UITableView 元素上的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46071850/