Изменить цвет полупрозрачного черного UINavigationBar
Я наткнулся на это много раз, и не нашел решения.
UINavigationController navigationBar можно установить на черный полупрозрачный, например:
self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;
Кроме того, в UINavigationBar есть полупрозрачное свойство, документы говорят:
Когда ДА, панель навигации рисуется с частичной непрозрачностью, независимо стиля бара. Количество непрозрачности фиксировано и не может быть изменилось. Допустимо устанавливать значение этого свойства, когда навигационная панель управляется объектом навигационного контроллера.
Я пробовал
self.navigationcontroller.navigationBar.tintColor=[UIColor blueColor];
self.navigationcontroller.navigationBar.translucent=YES;
и тысяча вариантов: сначала задайте свойство полупрозрачности, установив его в AppDelegate и в ViewController, сначала установив штрих-код.
Результат всегда один и тот же: Нет прозрачности. Следовательно, мой вопрос:
Можно ли изменить цвет полупрозрачного UINavigationBar на нечто, отличное от черного (желательно в UINavigationController)?
Я надеюсь, что существует безопасное решение.
Спасибо, м
Ответы
Ответ 1
Как только вы это знаете, это довольно просто:
self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.alpha = 0.7f;
self.navigationController.navigationBar.translucent = YES;
Свойство translucent
, по-видимому, только определяет, что основной вид должен быть видимым в панели навигации и соответствующим образом изменяет размер.
Ответ 2
Чтобы более точно воспроизвести полупрозрачный эффект, означающий, что только фон навигатора полупрозрачен, а кнопки, заголовок и все остальное непрозрачны, вы можете сделать вот так:
self.navigationController.navigationBar.translucent = YES;
[(UIView*)[self.navigationController.navigationBar.subviews objectAtIndex:0] setAlpha:0.7f];
Ответ 3
По крайней мере, в iOS 6 на iPhone 4S вы можете сделать цветную полупрозрачную навигационную панель следующим образом:
self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.translucent = YES;
Альфа-настройка больше не нужна. Это также оставляет мое название ярким белым, а мои кнопки непрозрачны.
Ответ 4
Вот решение:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:3.f/255.f green:8.f/255.f blue:61.f/255.f alpha:1]];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barTintColor = [UINavigationBar appearance].barTintColor;