问题:
今天为了使视图可以在点击textView以外的地方隐藏键盘,给控制器的view添加了一个tap手势,但是会和view上的collectionView的didSelect的选中cell冲突(只响应手势而不响应didSelect)。
解决方法:
在实例化tap手势时加上一句:
tapGestureRecognizer.cancelsTouchesInView = false
原理:
默认为YES,这种情况下当手势识别器识别到touch之后,会发送touchesCancelled给hit-testview以取消hit-test view对touch的响应,这个时候只有手势识别器响应touch。
当设置成NO时,手势识别器识别到touch之后不会发送touchesCancelled给hit-test,这个时候手势识别器和hit-test view均响应touch。