iOS 11问题-如果将手势添加到导航栏,则不会触发栏按钮操作
这在iOS 10上运行得非常好。但在iOS 11上不起作用<代码>显示弹出菜单未启动iOS 11问题-如果将手势添加到导航栏,则不会触发栏按钮操作,ios,objective-c,uinavigationbar,uibarbuttonitem,ios11,Ios,Objective C,Uinavigationbar,Uibarbuttonitem,Ios11,这在iOS 10上运行得非常好。但在iOS 11上不起作用显示弹出菜单未启动 gestureLeftArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(leftArrowGesture:)]; [self.navigationController.navigationBar addGestureRecognizer:gestureLeftArrow];
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
见: 讨论
当此属性为true(默认值)且接收者识别其手势时,未将该手势的待处理触摸发送到视图,并通过发送到视图的touchesCancelled(:with:)消息取消先前发送的触摸。如果手势识别器无法识别其手势,或者此属性的值为false,则视图将接收多点触摸序列中的所有触摸
您应该将手势识别器的
cancelsTouchesInView
设置为false
见: 讨论
当此属性为true(默认值)且接收者识别其手势时,未将该手势的待处理触摸发送到视图,并通过发送到视图的touchesCancelled(:with:)消息取消先前发送的触摸。如果手势识别器无法识别其手势,或者此属性的值为false,则视图将接收多点触摸序列中的所有触摸
是的。刚刚找到解决办法。要补充的是,这在iOS 11.2Yup中已经修复。刚刚找到解决办法。要补充的是,这在iOS 11.2中已经修复