UITapGestureRecognitor在iOS9上不工作

UITapGestureRecognitor在iOS9上不工作,ios,xcode,uigesturerecognizer,xcode7,ios9,Ios,Xcode,Uigesturerecognizer,Xcode7,Ios9,我有一个应用程序,它使用的是UITapGestureRecognizers,在iOS9 Beta 2中似乎不起作用 他们成功地打了电话 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { NSLog(@"shouldReceiveTouch"); return YES; } 但它不会影响任何其他UITap手势委托方法 当我在运行i

我有一个应用程序,它使用的是
UITapGestureRecognizers
,在iOS9 Beta 2中似乎不起作用

他们成功地打了电话

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
  NSLog(@"shouldReceiveTouch");
  return YES;
}
但它不会影响任何其他UITap手势委托方法

当我在运行iOS 8的设备上运行相同的应用程序(从Xcode 7)时,它会按预期工作

还有其他人打过这个吗

下面是初始化UITapGestureRecognitor的方法。

编辑
如果我在代码中而不是在ViewController xib中创建UITapGestureRecognitizer,它工作得很好,因此iOS9或其他程序中的xib解析有问题

_tapGesture2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onMainViewTap:)];
_tapGesture2.numberOfTapsRequired = 1;
_tapGesture2.delegate = self;
[self.view addGestureRecognizer:_tapGesture2];
Edit2
如果我删除了XIB中的手势识别器,并使用XCode 7再次将其添加回,它也可以工作。
当我这样做时,它将
添加到UITapGestureRecognitizer下的xib中。

我通过Xcode-7 beta 2检查了它

我用GestureRecognitor创建了vc,并为财产和行动创建了出口。在viewDidload设置的委托中,如下所示:

调试期间调用的所有方法-我已标记//调用

我收到了下一个方法的事件:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    print("worked")
    // called
    return true
}

 func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool
 {
    //called
    print("worked")
    return true
}


 func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool
 {
    print("worked")
    //called
    return true
}
尝试重新创建我提到的项目,并检查您的所有门店和代表


希望这能有所帮助。

似乎iOS9在手势识别器的xml中查找
行,没有它,轻触识别器就无法工作。 要修复此问题,您可以在代码中构建识别器,将该行添加到xml中,或者在Xcode 7中删除并重新添加手势识别器,这将正确地将
pressTypeMask
添加到xml中


我想知道苹果是否会修复iOS9,使其在XML中没有该行的情况下工作,但现在,这是一个简单的修复方法。

实现UIgestureRecognitor的所有可选委托都会工作。

我也遇到了这个问题,特别是当试图让我的按钮和视图(在表格单元格中使用点击手势)响应在xib中定义布局的点击时。在iOS 8和iOS 10上运行良好,但在iOS 9上运行不好。实际问题是,我将这些视图添加到自定义uiview中,并将视图的类分配给UITableViewCell子类,而不是在IB中使用
表视图单元格
对象。因此,我没有将子视图添加到IB对象提供给您的
内容视图
,从而导致了问题。修复方法是重做xib以使用表视图单元格作为我的根,这样我就可以将子视图附加到内容视图。

您是否将视图的属性“用户交互已启用”设置为“是”?可能view无法正确处理触摸设置为YES,但好主意:)。我在应用程序中使用了两个不同的UITapGestureRecognitors,这两个在iOS 8中都可以正常工作。另一点-UISweepGestureRecognitors似乎可以正常工作。我可以确认这一点。我有一些使用IB手势识别器的较老示例项目无法工作,只需将模糊的
行添加到.storyboard文件中的条目中,即可修复它们的行为。我像您一样构建了一个简单的项目,看起来那里的一切都很好,但在我现有的应用程序中,除了
shouldReceiveTouch
向Apple报告这是一个bug之外,它从来不会命中任何其他委托方法。请告诉我您想在哪里插入更多内容,好吗?@Roman我不知道如何在最新版本的Xcode上复制它。你对此有问题吗?@yerforkferchips,是的,我已将你运行iOS 8的项目更新为iOS 9.2(swift 2.1)。UITapGestureRecognitor不工作。请帮帮我!如果您从头开始创建一个新项目,一切都会正常工作。请尝试删除点击手势并重新添加,然后比较xml的变化情况。或者,您可以通过编程方式创建轻触手势。