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

 

posted @ 2015-11-03 12:50  Qingyun_Qearl  阅读(506)  评论(0)    收藏  举报