как изменить цвет заголовка панели навигации
Я использую навигационный контроллер в своем приложении и хочу изменить цвет заголовка navigationBar.
Я делаю это, используя ниже код
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor],UITextAttributeTextColor,nil];
[self.navController.navigationBar setTitleTextAttributes:dic];
еще одна вещь, которую я использую ARC xcode 4.2, и этот код помещается только в appdelegate
он отлично работает в ios 4+ но не работает над версиями ниже.
пожалуйста, помогите мне, как это сделать из одного кода в appdelegate
5 ответов
вы можете воссоздать 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.
**
пожалуйста, посмотрите на ответ Макса Стратера ниже, чтобы иметь более недавнее решение.
**
Я просто искал то же самое и нашел простое решение Alex R. R. С помощью iOS 5:
NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor],UITextAttributeTextColor,
[UIColor blackColor], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil];
[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
после iOS 5 просто сделайте следующее:
nav1.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor];
в iOS 7, просто использовать:
self.navController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
изменить [UIColor whiteColor]
С любым цветом текста, который вы хотите.
в 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;