有什么办法可以拥有
.background(.ultraThinMaterial)
在 SwiftUI 中没有背景颜色?它似乎有一些浅白色暗淡的背景,因为如果它只是单独模糊背景,那么只有内容滚动到后面时,它不应该显示任何颜色。
期望的结果:
如果将材质后面的内容的背景设置得更暗,则几乎可以消除由材质效果引起的背景较浅的阴影。换句话说,您可以通过在该区域设置较暗的背景来补偿较浅的阴影。
背景变暗是针对深色模式运行时的情况。在浅色模式下,它的工作方式相反,材质后面的内容需要变得更轻。这些组合效果很好:
在深色模式下,
Color(white: 0.15)
的主背景,材质后面有Color.black
。
在灯光模式下,
Color(white: 0.91)
的主背景,材质后面有Color.white
。
像这样:
@Environment(\.colorScheme) private var colorScheme: ColorScheme
let headerHeight: CGFloat = 175
var body: some View {
ZStack(alignment: .top) {
Color.clear
content
.background(alignment: .top) {
Color(white: colorScheme == .dark ? 0.0 : 1.0)
.ignoresSafeArea()
.frame(height: headerHeight, alignment: .top)
}
header
.frame(height: headerHeight, alignment: .top)
.background(.ultraThinMaterial)
}
.background(Color(white: colorScheme == .dark ? 0.15 : 0.91))
}