问题:UItableview和tap手势会产生冲突
(tap手势覆盖区有两个view,一个view需要响应tap,一个需要view自己处理,
由于view被tap手势覆盖,没办法自己处理)
解决办法:
1.原代码:
view.addGestureRecognizer(UITapGestureRecognizer(target:self, action:#selector(handleTap(_:))))
修改后代码:
lettapAction =UITapGestureRecognizer(target:self, action:#selector(handleTap(_:)))
tapAction.delegate=self
view.addGestureRecognizer(tapAction)
目的是给tap指定delegate。
2.self类继承 UIGestureRecognizerDelegate
(view所在controller)
class ChatDetailViewController: UIViewController ,UITableViewDelegate,UIGestureRecognizerDelegate{
3.重写函数,增加判断条件不需要tap手势响应返回false。
funcgestureRecognizer(_gestureRecognizer:UIGestureRecognizer, shouldReceive touch:UITouch) ->Bool{
if touch.view?.restorationIdentifier == "contactlist"{
returnfalse
}
return true
}
网友评论