iOS 11问题 - 如果手势添加到导航栏,则不会触发酒吧按钮操作
问题描述:
这可以在iOS 10上完美运行,但不适用于iOS 11. showFlyoutMenu
不会启动。iOS 11问题 - 如果手势添加到导航栏,则不会触发酒吧按钮操作
gestureLeftArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(leftArrowGesture:)];
[self.navigationController.navigationBar addGestureRecognizer:gestureLeftArrow];
gestureRightArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(rightArrowGesture:)];
[self.navigationController.navigationBar addGestureRecognizer:gestureRightArrow];
UIImage *image = [[UIImage imageNamed:@"hamburger-new.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *flyoutButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(showFlyoutMenu)];
self.navigationItem.rightBarButtonItem = flyoutButton;
答
你应该设置你的手势识别的cancelsTouchesInView
到false
。
见:cancelsTouchesInView
讨论
当此属性为true(默认值)和接收器识别的姿态,这一姿态被挂起不会传递到视图的触摸和以前交付触摸通过touchesCancelled(_:with :)消息发送到视图来取消。如果手势识别器无法识别其手势,或者此属性的值为false,则视图会接收多点触摸序列中的所有触摸。
是。刚刚找到解决方案。并且想要添加,这已经在iOS 11.2中修复了 – Nitish