Изменить шрифт панели навигации - PullRequest
64 голосов
/ 29 апреля 2011

Вопрос прост и понятен, ответа, к сожалению, нет.

Как изменить шрифт текста в UINavigationBar?

Ответы [ 7 ]

158 голосов
/ 29 апреля 2011

Из iOS 7 и более поздних версий:

NSShadow* shadow = [NSShadow new];
shadow.shadowOffset = CGSizeMake(0.0f, 1.0f);
shadow.shadowColor = [UIColor redColor];
[[UINavigationBar appearance] setTitleTextAttributes: @{
     NSForegroundColorAttributeName: [UIColor greenColor],
                NSFontAttributeName: [UIFont fontWithName:@"Helvetica" size:20.0f],
              NSShadowAttributeName: shadow
                                                      }];

Из iOS 5 и более поздних версий:

 [[UINavigationBar appearance] setTitleTextAttributes: @{
                                UITextAttributeTextColor: [UIColor greenColor],
                          UITextAttributeTextShadowColor: [UIColor redColor],
                         UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
                                     UITextAttributeFont: [UIFont fontWithName:@"Helvetica" size:20.0f]
     }];

Ранее, чем iOS 5:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:20.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentCenter;
label.textColor =[UIColor whiteColor];
label.text=self.title;  
self.navigationItem.titleView = label;      
[label release];
15 голосов
/ 30 января 2015

Если вы хотите изменить шрифт в самом Интерфейсном Разработчике (без кода), вот способ сделать это в Xcode6:

1.) Найдите представление панели навигации под сценой контроллера навигации. enter image description here

2.) Измените атрибуты шрифта заголовка, цвета и тени в инспекторе атрибутов. enter image description here

5 голосов
/ 08 октября 2013

Обновлено для iOS 7:

[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                      [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
                                                      shadow, NSShadowAttributeName,
                                                      [UIFont fontWithName:@"HelveticaNeue-CondensedBlack" size:21.0], NSFontAttributeName, nil]];

Предоставлено:

http://www.appcoda.com/customize-navigation-status-bar-ios-7/

5 голосов
/ 11 апреля 2012

Приведенный выше ответ работает.Я бы добавил следующую строку перед последней строкой.Если я этого не сделаю, кажется, что метка выровнена по центру неправильно, если слева есть кнопка «Назад», но нет правой кнопки.

...
[self.navigationItem.titleView sizeToFit]; 
[label release]; // not needed if you are using ARC
4 голосов
/ 22 августа 2015

Не уверен, почему во все ответы включена тень.Добавление линий, манипулирующих тенью, никак не влияет на изменение шрифта текста.Эти 2 строки кода будут работать для iOS 8.4 и Swift

let attributesDictionary = [NSFontAttributeName: UIFont(name: "Helvetica Neue", size: 14)!]
navigationController!.navigationBar.titleTextAttributes = attributesDictionary

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

1 голос
/ 06 марта 2014
     NSShadow *shadow = [NSShadow new];
[shadow setShadowColor: [UIColor clearColor]];
[shadow setShadowOffset: CGSizeMake(0.0f, 1.0f)];

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                         [UIFont fontWithName:@"TimeBurner" size:27.0f], NSFontAttributeName,
                                         [UIColor whiteColor], NSForegroundColorAttributeName,
                                         shadow, NSShadowAttributeName,nil]];
1 голос
/ 28 декабря 2012

Начиная с iOS 5 вы можете использовать внешний прокси.

Ответ в двух экземплярах этого вопроса: https://stackoverflow.com/a/12364740/883413

...