我不想在我的应用中使用无形导航栏。因此,我添加了此代码以对其进行更改。它可以工作,但是有一点问题。如果我使用largeTitle导航,则状态栏颜色为灰色。我该如何处理?预先感谢。
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().barTintColor = UIColor.white
UINavigationBar.appearance().backgroundColor = UIColor.white
答案 0 :(得分:1)
您可以通过使用UIStatusBarManager
在状态栏顶部添加子视图来解决此问题。
if #available(iOS 13, *) {
let keyWindow = UIApplication.shared.connectedScenes
.filter({$0.activationState == .foregroundActive})
.map({$0 as? UIWindowScene})
.compactMap({$0})
.first?.windows
.filter({$0.isKeyWindow}).first
let statusBar = UIView(frame: (keyWindow?.windowScene?.statusBarManager?.statusBarFrame)!)
statusBar.backgroundColor = .white
keyWindow?.addSubview(statusBar)
}
答案 1 :(得分:1)
尝试一下
let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.configureWithOpaqueBackground()
navBarAppearance.backgroundColor = UIColor.white
UINavigationBar.appearance().standardAppearance = navBarAppearance