试图让我的navigationController的navigationBar可点击。 它适用于
UITapGestureRecognizer* tapRecon = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(toggleMenu)];
tapRecon.delegate = self;
tapRecon.numberOfTapsRequired = 1;
[self.navigationBar addGestureRecognizer:tapRecon];
但是当我有一个后退按钮时,无法点击它(手势可能会占据按钮)。
所以,我尝试了一些在这里找到的东西:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return (![[[touch view] class] isSubclassOfClass:[UIButton class]]);
}
没什么,因为[touch view]
总是UINavigationBar ......
我尝试做的最后一件事是将cancelsTouchesInView
设置为NO
。没关系,我们可以点击后退按钮,但仍会调用toggleMenu
的{{1}}操作。
您是否有理由让后退按钮再次工作,但不能同时调用UITapGestureRecognizer
?
谢谢!
Juste找到了怎么做:
toggleMenu
答案 0 :(得分:0)
你可以制作一个环绕导航栏的按钮,并按下另一个按钮进行按下。务必将其安排在IB
中的导航栏按钮顶部答案 1 :(得分:-2)
这是Swift代码的解决方案:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
for view in self.navigationBar.subviews {
if let button = view as? UIButton {
if touch.view.isEqual(button) {
return false
}
}
}
return true
}
只需将此代码放入UIGestureRecognizer
。