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再次将其添加回来,它也有效。 当我这样做时,它将到UITapGestureRecognizer下的xib中。
似乎iOS9在手势识别器的xml中寻找
行,如果没有它,则点击识别器不起作用。 要修复你,可以在代码中构建识别器,将该行添加到xml中,或删除并在Xcode 7中重新添加手势识别器,这将正确地将pressTypeMask
添加到xml中。
我想知道苹果是否会修复iOS9而不使用XML中的那一行,但是现在,这是一个简单的解决方案。
我也遇到了这个问题,特别是当试图获取我的按钮和视图时,在表格单元格中点击手势以响应其布局在xib中定义的点击。 在iOS 8和10上工作得很好,但不是9.真正的问题是我将这些添加到自定义uiview并将视图的类分配给我的UITableViewCell子类,而不是在IB中使用Table View Cell
对象。 因此,我没有将我的子视图添加到IB对象为您提供的contentView
,从而导致我出现问题。 修复是重做xib以使用Table View Cell作为我的根,所以我可以将我的子视图附加到内容视图。
实现UIGestureRecognizer的所有可选委托将起作用。
我通过Xcode-7 beta 2检查了它
我用gesturerecognizer创建了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 }
尝试重新创建我提到的项目并检查所有商店和代表
希望这可以帮助
- 在iOS中testingunit testing中的asynchronous调用
- 在Playground Book的Contents和LiveViewController之间传递数据
- Swift(iOS),在返回之前等待所有图像完成下载
- CoreData有条件地使用NSPredicate(swift)获取NSDate
- XCTest不链接iOS框架
- 捕获的照片用AVCaptureSession sessionPreset = AVCaptureSessionPresetPhoto拉伸
- 在没有MPMediaPickerController的情况下访问用户的iTunes库
- iOS框架文件是为x86_64(不是要链接的体系结构(arm64))构建的,链接器命令失败,退出代码为1
- iOS KeychainItemWrapper不更新