iOS UITableview 不响应didSelectRowAt
问题:
tableview添加在一个View上,其它代理都能正常运行,唯独cell的点击事件不响应。
分析探索:
长按住cel,同时鼠标在cell里面滑行一段距离,发现响应了点击事件。考虑单点事件可能被拦截了。
再一想,似乎自己在tableview的父视图View上加了UITapGestureRecognizer事件,原因就在这里了UITapGestureRecognizer拦截掉了cell的点击事件。
解决办法很多,下面是一种
extension DZLoginPhoneNumberSelectView: UIGestureRecognizerDelegate { func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool { guard let view = touch.view?.superview else { return true } if view.isKind(of: UITableViewCell.classForCoder()) { return false } return true } }