чтение нажатий на поле заголовка iOS - PullRequest
0 голосов
/ 09 июня 2018

У меня проблема с чтением касаний на панели навигации (мне нужно открыть выпадающее меню, нажав на поле заголовка, как в 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; 
 } 

1 Ответ

0 голосов
/ 09 июня 2018

Насколько я знаю, вы просто хотите получить прикосновения к тексту в центре панели навигации, вы можете сделать это, добавив UIB-кнопку в заголовокПросмотреть вот так: -

UIButton *centerButton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44.0, 44.0)];
[centerButton setTitle:@"Center" forState:UIControlStateNormal];
[centerButton addTarget:self action:@selector(action) forControlEvents:UIControlEventTouchDown];
self.navigationItem.titleView=centerButton;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...