didSelectRow没有被调用

时间:2017-03-23 09:03:44

标签: ios uitableview uiview swift3

我在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)

}

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

你必须在TableView上取消UIGestureRecognizer的触摸。使用Gesture Recognizer的委托方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if ([touch.view isDescendantOfView:yourTableView]) {

        return NO;
    }

    return YES;
}