У меня проблема с чтением касаний на панели навигации (мне нужно открыть выпадающее меню, нажав на поле заголовка, как в telegram и т. Д., Но не в быстром). Я знаю, что в основном это нечитаемо, и ужеЯ пробовал использовать taprecognizer, но он не помог мне.Теперь мое меню открывается правой кнопкой - это ужасно.Как я могу справиться с этим?
Теперь строка, в которой выпадает меню (помещено в viewDidLoad), выглядит следующим образом:
navbar = [[UIBarButtonItem alloc]initWithTitle:@"navbar" style:UIBarButtonItemStylePlain target:self action:@selector(navigationTitleTapGestureAction:)];
и часть, которая объявляет кнопку:
NSArray *buttons = @[navbar <<...a few more buttons...>>];
self.navigationItem.rightBarButtonItems = buttons;
РЕДАКТИРОВАТЬ: дополнительный код из комментариев:
- (IBAction)navigationTitleTapGestureAction:(id)sender {
automaticDisappearanceCanceled_ = YES;
if (menuToolbarVisible_) {
[self hideMenuAnimated:YES];
}
else {
[self showMenuAnimated:YES];
}
}
- (void)showMenuAnimated:(BOOL)animated {
[self.view layoutIfNeeded];
self.toolbarTopLayoutConstraint.constant = 0.f;
self.menuToolbar.hidden = NO;
[UIView animateWithDuration:animated ? ToolbarMenuAnimationDuration : 0.f animations:^{
[self.view layoutIfNeeded];
} completion: ^(BOOL finished) {
}];
menuToolbarVisible_ = YES;
}
- (void)hideMenuAnimated:(BOOL)animated {
[self.view layoutIfNeeded];
self.toolbarTopLayoutConstraint.constant = -ToolbarMenuHeight;
[UIView animateWithDuration:animated ? ToolbarMenuAnimationDuration : 0.f animations: ^{
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
self.menuToolbar.hidden = YES;
}];
menuToolbarVisible_ = NO;
}