iPhone UINavigationBar меняет стиль шрифта для всех контроллеров с [UINavigationBar внешний вид] - PullRequest
6 голосов
/ 08 декабря 2011

Я знаю, что могу индивидуально изменить шрифт панели навигации, как указано в этом ответе: Изменить шрифт панели навигации

В настоящее время я использую более глобальный подход:

//in my app delegate:
    [[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];

Есть ли способ глобально изменить шрифт, который Navbar через внешний вид объекта?

спасибо!

Ответы [ 3 ]

23 голосов
/ 04 мая 2012

От Рэя Вендерлиха:

http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5

// Customize the title text for *all* UINavigationBars
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
    [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0], 
    UITextAttributeTextColor, 
    [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8], 
    UITextAttributeTextShadowColor, 
    [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
    UITextAttributeTextShadowOffset, 
    [UIFont fontWithName:@"Arial-Bold" size:0.0], 
    UITextAttributeFont, 
    nil]];
19 голосов
/ 12 ноября 2012

@ Ответ Javy с предложением @ Philip007:

[[UINavigationBar appearance] setTitleTextAttributes: @{
                            UITextAttributeTextColor: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],
                      UITextAttributeTextShadowColor: [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],
                     UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
                                 UITextAttributeFont: [UIFont fontWithName:@"Helvetica-Light" size:0.0f]
 }];

ааа ... это лучше!

6 голосов
/ 24 октября 2013

Выше приведены ответы с обновлениями для устаревших клавиш и использованием NSShadow:

NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor blackColor];
shadow.shadowBlurRadius = 0.0;
shadow.shadowOffset = CGSizeMake(0.0, 2.0);
[[UINavigationBar appearance] setTitleTextAttributes: @{
                     NSForegroundColorAttributeName : [UIColor blackColor],
                                NSFontAttributeName : [UIFont fontWithName:@"Helvetica-Light" size:0.0f],
                              NSShadowAttributeName : shadow
}];

Также установка размера шрифта на 0, чтобы он автоматически изменял размеры в зависимости от ориентации / высоты панели навигации.

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