我在UIView之上添加了UITableView。使用以下代码为UIView添加了点按手势:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapToClose))
tapGesture.cancelsTouchesInView = false
tapGesture.numberOfTapsRequired = 1
vwForTouchClose.addGestureRecognizer(tapGesture)
当我选择单元格didSelectRow没有被调用而是调用手势方法。 以下是didSelectRowAt的代码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
请帮我解决这个问题。
答案 0 :(得分:2)
你必须在TableView上取消UIGestureRecognizer的触摸。使用Gesture Recognizer的委托方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isDescendantOfView:yourTableView]) {
return NO;
}
return YES;
}