2017-05-23 64 views
2

我希望導航欄的背景爲0.5 alpha的顏色,以便能夠部分地看到下面視圖的內容。我試着這樣做:在導航欄中用alpha設置背景顏色

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    self.navigationController?.navigationBar.barTintColor = UIColor.blue 
    self.navigationController?.navigationBar.isTranslucent = true 
} 

如果我設置isTranslucenttrue,那麼navigationBar色清晰。如果我將isTranslucent設置爲false,即使設置了UIColor.blue.alpha(0.5)

我怎麼能做到這一點,顏色是不透明的?

回答

1

如果你只是想阿爾法的NavigationBar(不含狀態欄)背景..嘗試這個

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationController?.navigationBar.isTranslucent = true 
    self.navigationController?.navigationBar.backgroundColor = UIColor.blue.withAlphaComponent(0.5) 
} 

如果你想與阿爾法包括status bar,我怕你必須使用帶alpha值的圖像背景顏色。 see this

+0

謝謝,我只需要將該顏色應用於導航欄,但是當您按照發布的方式進行操作時,我發現它也會影響狀態欄,現在我可以看到背景顏色清晰。有沒有辦法阻止? – AppsDev

0

您也可以進行所需的顏色和透明度的圖像,然後在你的AppDelegatedidFinishLaunchingWithOptions功能簡單地補充一點:

//navigation bar 
     let navBackgroundImage:UIImage! = UIImage(named: "nav.png") 
     UINavigationBar.appearance().setBackgroundImage(navBackgroundImage, for: .default) 

其中nav.png是你的形象。

希望這會有所幫助。 :)