UITapGestureRecognizer无法在iOS9上运行

前端之家收集整理的这篇文章主要介绍了UITapGestureRecognizer无法在iOS9上运行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用UITapGestureRecognizers的应用程序,似乎在iOS9 Beta 2中不起作用.

他们成功地打电话了

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
  NSLog(@"shouldReceiveTouch");
  return YES;
}

但它没有击中任何其他UITapGesture委托方法.

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

还有其他人打过这个吗?

以下是我初始化UITapGestureRecognizer的方法.

编辑
如果我在代码中而不是在ViewController xib中创建UITapGestureRecognizer它可以正常工作,那么iOS9中的xib解析就可以了.

_tapGesture2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onMainViewTap:)];
_tapGesture2.numberOfTapsrequired = 1;
_tapGesture2.delegate = self;
[self.view addGestureRecognizer:_tapGesture2];

EDIT2
如果我删除了XIB中的GestureRecognizer并使用XCode 7再次将其添加回来,它也有效.
当我这样做时,它添加了< pressTypeMask key =“allowedPressTypes”/>进入UITapGestureRecognizer下的xib.

解决方法

似乎iOS9寻找< pressTypeMask key =“allowedPressTypes”/>没有它,手势识别器的xml中的行和点击识别器不起作用.
解决此问题,您可以在代码中构建识别器,将该行添加到xml中,或删除并在Xcode 7中重新添加手势识别器,这将正确地将pressTypeMask添加到xml中.

我想知道苹果是否会在没有XML的那一行的情况下修复iOS9,但是现在,这是一个简单的修复.

猜你在找的Xcode相关文章