在 iOS >= 15 上使状态栏不透明
Making status bar opaque on iOS >= 15
因此,从 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
上隐藏(不可见)导航控制器时不可能使状态栏不透明(和彩色)?
its impossible to make status bar opaque (and colorized) while navigation controller is hidden (not visible) on iOS >= 15?
这与iOS15无关。iOS15没有新的东西影响状态栏。状态栏已经透明了 6 或 7 年了。 (我没有时间弄清楚这种变化是什么时候发生的;关键是,它是古老的历史。)不透明的 and/or 彩色状态栏是不存在的,而且一直都没有时间。导航栏透明度/不透明度不会以任何方式影响状态栏透明度。如果状态栏显示它后面的导航栏,很好;你似乎喜欢那样。如果您不喜欢导航栏隐藏或透明时状态栏后面的颜色,请更改状态栏后面可见的颜色。
因此,从 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
上隐藏(不可见)导航控制器时不可能使状态栏不透明(和彩色)?
its impossible to make status bar opaque (and colorized) while navigation controller is hidden (not visible) on iOS >= 15?
这与iOS15无关。iOS15没有新的东西影响状态栏。状态栏已经透明了 6 或 7 年了。 (我没有时间弄清楚这种变化是什么时候发生的;关键是,它是古老的历史。)不透明的 and/or 彩色状态栏是不存在的,而且一直都没有时间。导航栏透明度/不透明度不会以任何方式影响状态栏透明度。如果状态栏显示它后面的导航栏,很好;你似乎喜欢那样。如果您不喜欢导航栏隐藏或透明时状态栏后面的颜色,请更改状态栏后面可见的颜色。