UINavigationBar, установленный tintcolor, проверенный в iOS7, не работает?
У меня есть приложение, у которого есть UINavigationBar
, и я установил цвет оттенка как черный:
self.navigationController.navigationBar.tintColor = [UIColor blackColor];`
Я тестировал его в IOS 6, и он черный. Тем не менее, он появляется как панель навигации по умолчанию, когда я пробовал одно и то же приложение в iOS 7.
Как говорится в названии, не работает ли он?
Ответы
Ответ 1
Вам нужно установить свойство barTintColor.
Вы можете указать цвет настраиваемого оттенка для фона навигационной панели, используя поле Tint (barTintColor). Цвет фона по умолчанию - белый.
Из документов iOS7: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/UINavigationBar.html#//apple_ref/doc/uid/TP40012857-UINavigationBar-SW1
Ответ 2
Ответы Фернандо и Санджаны имеют ключ, но я просто добавлю что-то, чтобы сделать его более ясным и более очевидным.
Навигационная панель имеет два свойства
Это немного вводит в заблуждение, когда вы не думаете в терминах iOS 7.
tintColor
изменяет цвет кнопок на панели навигации.
Чтобы изменить цвет фона, вам нужно установить свойство barTintColor
.
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.tintColor = [UIColor greenColor];
Этот фрагмент кода даст вам белую навигационную панель с зелеными кнопками.
Ответ 3
Я использовал следующий код, чтобы изменить цвет оттенка панели навигации в iOS7, я добавил это в приложении делегата "applicationDidFinishLaunch", и его работа прекрасна для меня:
/* ios 7 Change */
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x4B678B)];
NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
shadow.shadowOffset = CGSizeMake(0, 1);
[[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:@"Helvetica Neue" size:21.0], NSFontAttributeName, nil]];
// self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
//[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
}
Ответ 4
Для меня работает следующий код:
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
Ответ 5
Имел ту же проблему, но решил ее через файл раскадровки.
Попробуйте следующее.
Ответ 6
[UINavigationBar appearance].tintColor = [UIColor redColor];
if ([[UINavigationBar appearance] respondsToSelector:@selector(setBarTintColor:)]) {
[UINavigationBar appearance].barTintColor = [UIColor redColor];
}
//OR
self.navigationController.navigationBar.tintColor = [UIColor redColor];
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
}