gesture手势点击与tableview touch点击冲突问题
今天遇到一个问题,点击tableview 没有 执行
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
,响应事件响应到tableview 下面的view 的手势 tap事件了。后来发现原因是UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应
解决方法:
重写UIGestureRecognizerDelegate中的
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool方法,
1 func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 2 print("-------------------\(NSStringFromClass((touch.view?.classForCoder)!))-------") 3 print("----------********---------\(object_getClass(touch.view)))-------") 4 if NSStringFromClass((touch.view?.classForCoder)!) == "UITableViewCellContentView"{ 5 return false 6 } 7 return true 8 }
再次调试,这回didSelectRowAtIndexPath响应了,解决UITapGestureRecognizer手势截获Touch事件的问题。也就是说不会响应tap 手势了。(我这写的就是个坑啊)
参考文章:http://m.blog.csdn.net/blog/dragonsilaya0727/21798597
如果错过了一天,那么真的就错过一天。不抛弃,不放弃。点一盏心灯给自己。
浙公网安备 33010602011771号