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

chu*_*tor 5 uinavigationbar uinavigationcontroller ios swift swift3

完全陷入困境。我四处张望,并实施了所有可以找到的解决方案。我似乎无法使导航栏变得透明。

尝试设置背景颜色时,我只是在顶部显示一个黑条。与尝试设置背景图像相同。我已经尝试了所有这些方法,并尝试了许多其他方法。

    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.backgroundColor = UIColor.clear
Run Code Online (Sandbox Code Playgroud)

我在滚动时在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()

    }
}
Run Code Online (Sandbox Code Playgroud)

这是它的样子...

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

任何帮助,不胜感激。

小智 -1

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

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

在 AppDelegateapplication didFinishLauchingWithOptions方法中