我正在制作的 iOS 应用程序支持深色模式,并且我在导航栏的背景中使用 .ultraThinMaterial 以获得更好的对比度和可见性。虽然它在浅色模式下看起来很棒,但深色模式版本似乎有这种白色色调,在我看来,这看起来有点俗气。
我正在寻找一种只能针对深色模式实现的解决方案,以避免它看起来像这样:
这些图片并没有反映出它在 iPhone 物理屏幕上的糟糕表现,至少在我的显示器上是这样的
这是使用 .ultraThinMaterial 的代码:
Color.clear
.background(.ultraThinMaterial)
.blur(radius: 20)
.saturation(0.0)
.ignoresSafeArea()
.frame(height:70+80)
.offset(y: 50)
谢谢!
你可以做这样的事情
struct ContentView: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
ZStack{
if colorScheme == .light{
Color.clear
.background(.ultraThinMaterial)
.blur(radius: 20)
.saturation(0.0)
.ignoresSafeArea()
.frame(height:70+80)
.offset(y: 50)
}
}//: ZSTACK
}
}
已经晚了,但由于我在这里没有看到任何接受的答案,所以添加一个。
您可以使用额外的一行代码强制 UI 根据您的要求仅使用深色或浅色版本
.environment(\.colorScheme, .light)
或
.environment(\.colorScheme, .dark)