Касание UINavigationBar

Я хотел бы запустить событие в касание, когда пользователь касается заголовка панели навигации одного из моих представлений.

Я в чем-то вроде потери на том, могу ли я получить доступ к представлению заголовка UINavigationBar для обеспечения электричеством сенсорного события к нему.

Это даже возможно?

21
задан Ortwin Gentz 25 September 2018 в 17:39
поделиться

2 ответа

Решение, которое я нашел, - это кнопка, я использую следующее (но я не знаю, как «законно» есть):

UIButton *titleLabelButton = [UIButton buttonWithType:UIButtonTypeCustom];
[titleLabelButton setTitle:@"myTitle" forState:UIControlStateNormal];
titleLabelButton.frame = CGRectMake(0, 0, 70, 44);
titleLabelButton.font = [UIFont boldSystemFontOfSize:16];
[titleLabelButton addTarget:self action:@selector(didTapTitleView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.titleView = titleLabelButton;

поставить этот бит кода, когда когда-либо вы устанавливаете заглавие. Тогда в другом месте у меня было это, чтобы проверить:

- (IBAction)didTapTitleView:(id) sender
{
    NSLog(@"Title tap");
}

, который зарегистрировал «Title Tap» на консоли!

То, как я пошел об этом, может быть совершенно неправильным, но может дать вам представление о том, что вы можете посмотреть. Это, безусловно, помогло мне! Там, вероятно, лучший способ сделать это, хотя.

30
ответ дан 29 November 2019 в 06:07
поделиться

Справка класса Справка класса имеет свойство SilverView , которое вы можете установить на заказ UIView .

Другими словами, сделайте подкласс UIView со своими прикосновенными обработчиками, а затем, когда вы нажимаете свой навигационный элемент, установите свой элемент SilverView свойство для экземпляра вашего подкласса.

9
ответ дан 29 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: