Установка шрифта и размера шрифта текста строки заголовка в UITableViewController - PullRequest
9 голосов
/ 10 октября 2009

У меня есть простое навигационное приложение для iPhone / Objective-C

в различных UIViewControllers, которые выдвигаются в поле зрения, я могу установить текст в строке заголовка, используя что-то вроде

self.title = @"blah blah blah"

Есть ли способ контролировать шрифт и размер шрифта заголовка в тексте строки заголовка?

спасибо!

Ответы [ 4 ]

17 голосов
/ 07 апреля 2011

правильный способ изменить размер текста заголовка navcontroller - установить свойство titleView элемента navigationItem

как это (в viewDidLoad)

   UILabel* tlabel=[[UILabel alloc] initWithFrame:CGRectMake(0,0, 300, 40)];
        tlabel.text=self.navigationItem.title;
    tlabel.textColor=[UIColor whiteColor];
    tlabel.backgroundColor =[UIColor clearColor];
    tlabel.adjustsFontSizeToFitWidth=YES;
    self.navigationItem.titleView=tlabel;
4 голосов
/ 26 декабря 2011

Возможно, вы захотите выбить этикетку, чтобы она не выглядела пушистой и плоской:

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect frame = CGRectMake(0, 0, 400, 44);
    UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:18.0];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor whiteColor];
    label.text = self.navigationItem.title;
    // emboss so that the label looks OK
    [label setShadowColor:[UIColor darkGrayColor]];
    [label setShadowOffset:CGSizeMake(0, -0.5)];
    self.navigationItem.titleView = label;
}
3 голосов
/ 16 апреля 2013

Если вы хотите, чтобы это работало как на iphone, так и на ipad, а также чтобы центрировать заголовок, используйте следующий код.

 - (void)viewDidLoad
{
    [super viewDidLoad];

    UILabel* label=[[UILabel alloc] initWithFrame:CGRectMake(0,0, self.navigationItem.titleView.frame.size.width, 40)];
    label.text=self.navigationItem.title;
    label.textColor=[UIColor whiteColor];
    label.backgroundColor =[UIColor clearColor];
    label.adjustsFontSizeToFitWidth=YES;
    label.font = [AppHelper titleFont];
    label.textAlignment = NSTextAlignmentCenter;
    self.navigationItem.titleView=label;
}
3 голосов
/ 10 октября 2009

Вы можете назначить любой UIView области заголовка navcontroller.

Создайте UILabel и в любом случае установите его шрифт и размер, затем присвойте его свойству navigationItem.titleView в UIViewController. Убедитесь, что для backgroundColor UILabel установлено значение clearColor.

Это работает только в навигационном представлении верхнего уровня. Когда пользователь углубляется в иерархию контроллера представления и отображается кнопка «назад», альтернативный titleView игнорируется и отображается обычная текстовая метка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...