2017-03-04 35 views
2

完全難倒。我已經看遍了所有,並實施了我能找到的每個解決方案。我似乎無法讓導航欄變得透明。導航控制器黑色時,試圖使透明

當試圖設置背景顏色時,我只是在頂部看到一個黑色條。就像我試圖設置背景圖像一樣。我嘗試了所有這些和所有的變化。

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationController?.navigationBar.shadowImage = UIImage() 
    self.navigationController?.navigationBar.backgroundColor = UIColor.clear 

我使用它 viewWillAppear中()和動畫滾動時。導航欄是透明的,然後當您滾動導航欄時,會獲得帶有灰色文本的白色背景。

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    self.navigationController?.navigationBar.barStyle = .default 
    let offset = self.tableView.contentOffset.y 
    if offset > 250.0 { 
     self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.darkGray] 
     self.navigationController?.navigationBar.topItem?.title = spot!.Name 
     self.navigationController?.navigationBar.isTranslucent = false 
     self.navigationController?.navigationBar.tintColor = UIColor.darkGray 
     self.navigationController?.isNavigationBarHidden = false 
     self.navigationController?.navigationBar.barTintColor = UIColor.white 
    } 
    else { 

     self.navigationController?.navigationBar.topItem?.title = nil 
     self.navigationController?.navigationBar.isTranslucent = true 
     self.navigationController?.isNavigationBarHidden = false 
     self.navigationController?.navigationBar.tintColor = UIColor.white 

     self.navigationController?.navigationBar.barTintColor = UIColor.white 
     self.navigationController?.navigationBar.shadowImage = UIImage() 

    } 
} 

Here's what it looks like...

我也試過背景顏色設置爲白色,並改變了阿爾法= 0,但這並不能工作。

任何幫助非常感謝。

回答

0

這是因爲窗口的背景色爲黑色,

您應該設置window?.backgroundColor = UIColor.white

在AppDelegate中application didFinishLauchingWithOptions方法

+0

這有助於,但我仍然不能得到它完全透明..我現在在頂部有一個完整的白色酒吧! – chuninator

+1

我試過你的方法了,我爲我工作,檢查你的scrollview的y,看它是否在navbar下 – menq