2017-02-18 1 views
0

Я хочу, чтобы мой UINavigationBar был полностью прозрачным, за исключением названия и кнопок, которые я добавляю к нему.Изменение UINavigationBar на прозрачный цвет

Я просто не могу заставить работать. Я уже все пробовал. Это имело смысл для меня:

override func viewDidLoad() { 
    self.title = "CURRENT BALANCE" 

    self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationController!.navigationBar.shadowImage = UIImage() 
    self.navigationController!.navigationBar.isTranslucent = true 

    self.setupSideMenu() 

    self.topUpButton.asCircle() 
    self.exchangeButton.asCircle() 
    self.lockButton.asCircle() 
} 

enter image description here

+0

Ваш код работает хорошо для меня. Проверьте это: https://gyazo.com/728a1cf8ad12356ce05a024ce4f0c252 Можете ли вы поделиться демонстрационным проектом? –

+0

Это именно то, что я хочу! Я не понимаю, почему это не происходит на моем устройстве/симуляторе :( –

+0

Можете ли вы поделиться демонстрацией? Или вы отправляете мне письмо по моей почте. –

ответ

1

это мой OC код, чтобы сделать UINavigationBar быть полностью прозрачным:

первый набор ВК для UINavigationControllerDelegate, затем переопределить - (void) navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

// change the backgroudcolor black 
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.000 green:0.000 blue:0.000 alpha:1.000]; 
    // change the alpha 0.3 
    self.navigationController.navigationBar.alpha = 0.300; 
    // change the translucent YES 
    self.navigationController.navigationBar.translucent = YES; 

В настоящее время проверьте свой код о self.view.backgroudcolor, если какой-либо вид под вашим UINavigationBar имеют backgroudcolor, ваш UINavigationBar отобразит цвет представления.

+0

Я думаю, что 'swift' тоже может это сделать, но мой быстрый очень плохо. –

+0

Мне удалось перевести код на Swift, но для меня это не повлияло –

+0

Вы установили 'self.view.backgroudcolor'? Проверьте это. –

1

Установить цвет фона свойство панели навигации

self.navigationController!.navigationBar.backgroundColor = UIColor.clear 

Update:

self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetricsDefault) 
+0

Не имеет значения для меня –

+0

@ RutgerHuijsmans Обновлен мой ответ, попробуйте это и дайте мне знать. – iYoung

+0

Нашли решение. Основной вид имел белый фон, поэтому панель была уже прозрачной. –

0

Это прозрачный код NavigationController для быстрой 4:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationBar.shadowImage = UIImage() 
    self.navigationBar.isTranslucent = true 
}