UIGestureRecognizer添加到UIWindow后,为什么iPad不响应?

背景:我需要查看应用程序中发生的每个UITouch,并查看UITouch是否不在某个UIImageView中。

WildcardGestureRecognizer看起来非常有前途,我试了一下。 (代码在这里): 如何截取MKMapView或UIWebView对象上的触摸事件?

它非常适合沙箱/快速创build的应用程序。 但是,这个应用程序并没有反映实际目标项目的复杂性。 目标项目有一个表视图控制器等等。

将WildcardGestureRecognizer添加到更多的iPad应用程序之后,我发现在添加手势识别器之后,其他控件都不起作用,并且发生一次点击。

这里有一些代码,我正在玩这个想法。 此外,沙箱代码还没有控制它(如一个表视图控制器,甚至一个UIButton),看看他们的工作后,添加到UIWindow手势识别器。

我应该select除UIWindow以外的其他东西添加手势识别器,或者我会遇到同样的问题,不pipe? 有没有更好的办法?

沙箱代码: https : //github.com/finneycanhelp/GestureKata

你可能想尝试另一种方法:创build一个UIWindow子类,在你的XIB中使用它,并重写hitTest:withEvent: 它返回已被“select”来接收触摸事件的视图。

 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { UIView *v; v = [super hitTest:point withEvent:event]; if (v == myImageView) { // Do something. Maybe return nil to prevent the touch from getting // sent to the image view. } return v; } 

重写这个方法在debugging时也是有帮助的。