尝试透明时导航控制器黑色

时间:2017-03-04 09:18:18

标签: ios swift swift3 uinavigationcontroller uinavigationbar

完全难倒。我看了一遍,实现了我能找到的每一个解决方案。我似乎无法让导航栏变得透明。

尝试设置背景颜色时,我只在顶部找到一个黑色条。就像我尝试设置背景图像一样。我已经尝试了所有这些以及所有这些变化。

    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...

我也尝试将背景颜色设置为白色,并更改alpha = 0,但这也不起作用。

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

这是因为窗口的背景颜色为黑色

您应该设置window?.backgroundColor = UIColor.white

在AppDelegate application didFinishLauchingWithOptions方法