SwiftUI sheet 模态背景不适用于 edgesIgnoreSafeArea(.all) - 为什么?

SwiftUI sheet modal background not working with edgesIgnoreSafeArea(.all) - WHY?

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


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

... redacted ...

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

iPhone Simulator with sheet modal

见图片(附)

知道我做错了什么吗?

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

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

绘制背景的最佳方法是使用 ZStack:

    var body: some View {
        ZStack {
            // replace with the color you want
            Color.green
                .edgesIgnoringSafeArea(.all)
            

            VStack {
                // put view's Content here
            }
        }
    }