先说一下遇到的情况。本人用到了一个日历的第三方库,在使用部分代理方法时候,出现了点击异常(轻拍不响应代理方法,长按才会有响应),后来经过细致的断点,看到第三方内部实现代理方法是在
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 里,
打断点发现,在
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 方法执行后
直接执行了
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
并没有执行touchesEnded 感觉很奇怪,开始了一个touch,却没有end,最终发现是在self.view上加了一个轻拍手势,收起键盘的功能,影响到了touch的响应链,出现的这次异常。