使用此代码,我的视图-touchesEnded:withEvent:
仍然会在第一次点击时被调用:
UITapGestureRecognizer *doubleTapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
doubleTapGR.numberOfTapsRequired = 2;
doubleTapGR.delaysTouchesEnded = YES;
doubleTapGR.cancelsTouchesInView = YES;
[self addGestureRecognizer:doubleTapGR];
但根据它的文件delaysTouchesEnded
不应该:
当此属性的值为 YES(默认值)并且接收器正在分析触摸事件时,窗口会暂停将 UITouchPhaseEnded 阶段的触摸对象传递到附加视图。如果手势识别器随后识别出它的手势,则取消这些触摸对象(通过 touchesCancelled:withEvent: 消息)。如果手势识别器无法识别其手势,则窗口在调用视图的 touchesEnded:withEvent: 方法时传递这些对象。将此属性设置为 NO 以在手势识别器分析相同的触摸时将 UITouchPhaseEnded 中的触摸对象传递到视图。