首页 > 解决方案 > SwiftUI 工作表模式背景不适用于 edgeIgnoreSafeArea(.all) - 为什么?

问题描述

我正在运行带有 SwiftUI 工作表模式的 iOS 13 模拟器 - 尝试绘制工作表背景并忽略安全区域 - 但仍然显示白色工作表。关于如何正确执行此操作的任何想法?


    var body: some View {
        VStack(alignment: .center, spacing: 0) {

... redacted ...

 }   // VStack
            .background(Color.gray.edgesIgnoringSafeArea(.all))

带有工作表模式的 iPhone 模拟器

看图(附)

任何想法我做错了什么?

标签: backgroundswiftui

解决方案


将顶部容器(VStack在您的情况下)扩展到整个工作表区域,例如

VStack {
    // ... your content
}
.frame(maxWidth: .infinity, maxHeight: .infinity)      // << here !!
.background(Color.gray.edgesIgnoringSafeArea(.all))

推荐阅读