как изменить цвет заголовка панели навигации - PullRequest
8 голосов
/ 06 января 2012

Я использую контроллер навигации в своем приложении и хочу изменить цвет заголовка navigationBar.

Я делаю это, используя приведенный ниже код

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor],UITextAttributeTextColor,nil];
    [self.navController.navigationBar setTitleTextAttributes:dic];

Еще одна вещь, которую я использую ARC xcode4.2 и этот код помещен только в appdelegate

Он отлично работает в ios 4+, но не работает в следующих версиях.

Пожалуйста, помогите мне, как это сделать из одного кода в appdelegate

Ответы [ 5 ]

17 голосов
/ 25 апреля 2013

Я просто искал то же самое и нашел простое решение Alex RR с использованием iOS 5:

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                            [UIColor whiteColor],UITextAttributeTextColor, 
                                            [UIColor blackColor], UITextAttributeTextShadowColor, 
                                            [NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil];

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];

Ссылка: Панель навигации iPhone Цвет текста заголовка

9 голосов
/ 06 января 2012

Вы можете воссоздать titleView следующим образом в вашем viewcontroller:

UILabel * titleView = [[UILabel alloc] initWithFrame:CGRectZero];
titleView.backgroundColor = [UIColor clearColor];
titleView.font = [UIFont boldSystemFontOfSize:20.0];
titleView.shadowColor = [UIColor colorWithWhite:1.0 alpha:1.0];
titleView.shadowOffset = CGSizeMake(0.0f, 1.0f);
titleView.textColor = [UIColor redColor]; // Your color here
self.navigationItem.titleView = titleView;
[titleView sizeToFit];
[titleView release];

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

**

Пожалуйста, посмотрите ответ Макса Стратера ниже, чтобы найти более свежее решение.

**

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

После iOS 5 просто сделайте это:

    nav1.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor];
4 голосов
/ 21 июля 2014

В iOS 7 просто используйте:

self.navController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};

Измените [UIColor whiteColor] на любой другой цвет текста.

2 голосов
/ 06 января 2014

в iOS 7 это то, как вы можете изменить цвет заголовка / текста Navbar:

UIColor *red = [UIColor colorWithRed:254.0f/255.0f green:0.0f/255.0f blue:0.0f/255.0f alpha:1.0];

NSMutableDictionary *navBarTextAttributes = [NSMutableDictionary dictionaryWithCapacity:1];

[navBarTextAttributes setObject:red forKey:NSForegroundColorAttributeName ];

self.navigationController.navigationBar.titleTextAttributes = navBarTextAttributes;
...