我做了以下操作,使导航栏只是白色。
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
所以我将每个UIViewController设置为"不在top / bot bar"下面。这看起来像我想要的。但是当我制作一个UIImagePicker时,它看起来像这样:
所以我尝试了以下内容:
let imagePicker = UIImagePicker()
imagePicker.edgesForExtendedLayout = []
但它不起作用。我该怎么做?
请问!
答案 0 :(得分:8)
默认情况下导航栏是否为白色?像
一样UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
将背景设置为没有数据的图像,因此它将是透明的。如果您确实需要设置导航栏的颜色,请使用
UINavigationBar.appearance().barTintColor = UIColor.white
而不是将背景设置为图像。你可能需要
self.navigationController!.navigationBar.isTranslucent = false
每个viewController的viewDidLoad内部,但首先尝试不使用它
答案 1 :(得分:3)
我不得不补充道:
UINavigationBar.appearance().isTranslucent = false
进入我的AppDelegate。
感谢Fonix和dfd
答案 2 :(得分:1)
在你的AppDelegate didFinishLaunchingWithOptions中尝试这个:
UINavigationBar.appearance().barTintColor = UIColor.white
UINavigationBar.appearance().isTranslucent = false
// these next lines aren't needed if you like the default
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.black] // shouldn't be needed, but if you want something
UINavigationBar.appearance().tintColor = UIColor.blue
我很确定你需要将isTranslucent设置为false。