完全被难住了。我已经遍地查看并实现了我能找到的每一个解决方案。我似乎无法让导航栏变得透明。
当尝试设置背景颜色时,我只在顶部看到一个黑条。就像我尝试设置背景图像一样。我已经尝试了所有这些以及所有这些变化。
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()
}
}
我也试过将背景颜色设置为白色,并更改 alpha = 0,但这也不起作用。
非常感谢任何帮助。
最佳答案
这是因为窗口的背景颜色是黑色,
你应该设置window?.backgroundColor = UIColor.white
在 AppDelegate application didFinishLauchingWithOptions
方法中
关于ios - 尝试透明时导航 Controller 黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42594264/