2017-02-18 139 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的是完全透明的:

首先設置的VC 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; 

mainwhile,請檢查您的關於self.view.backgroudcolor的代碼,如果在您的01下有任何視圖有背景顏色,您的UINavigationBar將顯示視圖的顏色。導航欄

+0

我認爲'迅速'也可以做到這一點,但我的迅捷 –

+0

我能夠將你的代碼翻譯成Swift,但它對我沒有什麼影響 –

+0

你設置了'self.view.backgroudcolor'嗎?檢查這個 –

1

設置背景顏色屬性

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

更新:

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

對我無害 –

+0

@RutgerHuijsmans更新我的答案,請嘗試這個&讓我知道。 – iYoung

+0

找到解決方案。底層視圖有白色背景,所以酒吧已經是透明的。 –

0

這是SWIFT 4透明NavigationController代碼:

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