iOS的手势事件和可滚动视图(tableView、collectionView...)的触摸事件冲突的解决方法

问题:

今天为了使视图可以在点击textView以外的地方隐藏键盘,给控制器的view添加了一个tap手势,但是会和view上的collectionView的didSelect的选中cell冲突(只响应手势而不响应didSelect)。 

解决方法

在实例化tap手势时加上一句:  

tapGestureRecognizer.cancelsTouchesInView = false

原理:

默认为YES,这种情况下当手势识别器识别到touch之后,会发送touchesCancelledhit-testview以取消hit-test viewtouch的响应,这个时候只有手势识别器响应touch

     当设置成NO时,手势识别器识别到touch之后不会发送touchesCancelledhit-test,这个时候手势识别器和hit-test view均响应touch

你可能感兴趣的:(iOS的手势事件和可滚动视图(tableView、collectionView...)的触摸事件冲突的解决方法)