问题:
如图,在项目 Info.plist
中,将 UIViewControllerBasedStatusBarAppearance
设置为 NO,将
UIStatusBarStyle设置为Light Content后,APP的状态栏字体颜色仍然是黑色没变成白色。
修复:
https://stackoverflow.com/questions/57063142/swiftui-status-bar-color
方式一:
先确保在 Info.plist
中将 UIViewControllerBasedStatusBarAppearance
设置为 YES
,这允许每个视图控制器控制自己的状态栏样式。
使用 .preferredColorScheme()
:尝试在顶层视图中指定颜色方案,例如,使用 .preferredColorScheme(.dark)
可以让状态栏变为白色。
struct ContentView: View {
var body: some View {
ZStack {
Color.black.edgesIgnoringSafeArea(.all)
// 你的内容
}
.preferredColorScheme(.dark) // 强制内容使用深色模式
}
}
这种方式有个问题,改成深色模式后将完全改变当前页面的配色方案,会导致开发者去为更多的内容适配深色模式。
方式二:
将界面保持在.light
模式下
ZStack {
Color.black.edgesIgnoringSafeArea(.all)
VStack(spacing: 0) {
...
}.colorScheme(.light)
}
.preferredColorScheme(.dark)