Подтвердить что ты не робот

Изменить цвет полупрозрачного черного UINavigationBar

Я наткнулся на это много раз, и не нашел решения. UINavigationController navigationBar можно установить на черный полупрозрачный, например:

self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;

Кроме того, в UINavigationBar есть полупрозрачное свойство, документы говорят:

Когда ДА, панель навигации рисуется с частичной непрозрачностью, независимо стиля бара. Количество непрозрачности фиксировано и не может быть изменилось. Допустимо устанавливать значение этого свойства, когда навигационная панель управляется объектом навигационного контроллера.

Я пробовал

self.navigationcontroller.navigationBar.tintColor=[UIColor blueColor];
self.navigationcontroller.navigationBar.translucent=YES;

и тысяча вариантов: сначала задайте свойство полупрозрачности, установив его в AppDelegate и в ViewController, сначала установив штрих-код. Результат всегда один и тот же: Нет прозрачности. Следовательно, мой вопрос:

Можно ли изменить цвет полупрозрачного UINavigationBar на нечто, отличное от черного (желательно в UINavigationController)?

Я надеюсь, что существует безопасное решение.

Спасибо, м

4b9b3361

Ответ 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;