Заголовок мультилинии UINavigationBar

Существует ли простой способ переопределить titleView текущего объекта панели навигации в панели навигации в контроллере навигации? Я попытался создать новый UIView и заменить titleView свойство topView с моим собственным UIVIew без успеха.

В основном я хочу многострочный заголовок для заголовка панели навигации. Какие-либо предложения?

54
задан petert 19 March 2014 в 22:23
поделиться

1 ответ

Установите свойство titleView для UINavigationItem . Например, в методе контроллера представления viewDidLoad вы можете сделать что-то вроде:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 480, 44)];
label.backgroundColor = [UIColor clearColor];
label.numberOfLines = 2;
label.font = [UIFont boldSystemFontOfSize: 14.0f];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.text = @"This is a\nmultiline string";

self.navigationItem.titleView = label;

#if !__has_feature(objc_arc)
[label release];
#endif

Это будет выглядеть так:

multi-line titlebar label

Помните, что свойство titleView игнорируется ], если leftBarButtonItem не равно nil .

83
ответ дан 7 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

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