2017-03-04 54 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