因此,从iOS 15开始,它更新了导航栏的外观。如果它后面没有内容(例如,我们没有向上滚动),它将是透明的。现在,这也会影响状态栏。
隐藏导航栏时,状态栏保持透明。如果我这样做(应用程序代理):
if #available(iOS 15.0, *) {
let navigationBarAppearance = UINavigationBarAppearance()
navigationBarAppearance.configureWithOpaqueBackground()
navigationBarAppearance.backgroundColor = .systemPurple
UINavigationBar.appearance().standardAppearance = navigationBarAppearance
UINavigationBar.appearance().compactAppearance = navigationBarAppearance
UINavigationBar.appearance().scrollEdgeAppearance = navigationBarAppearance
}
只有在我的导航栏没有隐藏的情况下,这才有效。否则,如果我在视图控制器中执行以下操作:
navigationController.isNavigationBarHidden = true
我的状态栏保持透明。
这没什么大不了的。我将只使用安全区域,并设置视图控制器视图的背景色,它看起来就像状态栏实际上有一种颜色。但它仍然是透明的。即使我做到了
navigationBarAppearance.configureWithOpaqueBackground()
我是否遗漏了什么,当导航控制器隐藏(不可见)在屏幕上时,不可能使状态栏不透明(并着色)
iOS >= 15
?