首页 > 解决方案 > SwiftUI - 无法在工作表底部填充屏幕

问题描述

由于某种原因,我的床单底部没有填满颜色。尝试了以下代码,但只能填充顶部安全空间。有什么线索吗?

工作表没有填满颜色

var body: some View {
    GeometryReader { geometry in
        VStack {
            Text("Hi")
                .font(.title)
        }
        .frame(width: geometry.size.width, height: geometry.size.height)
        .background(LinearGradient(gradient: Gradient(colors: [Color(hex: 0x71A2B6), Color(hex: 0xF09D51)]), startPoint: .top, endPoint: .bottom))
        .edgesIgnoringSafeArea(.all)
    }
}

标签: swiftui

解决方案


您已设置.frame(width: geometry.size.width, height: geometry.size.height)不会覆盖底部区域。

如果您的目标只是让您的 View 填满整个屏幕,您可能不需要GeometryReader.

您可以尝试使用 aZStack代替:

struct ContentView: View {
    var body: some View {
        ZStack {
            LinearGradient(gradient: Gradient(colors: [Color(hex: 0x71A2B6), Color(hex: 0xF09D51)]), startPoint: .top, endPoint: .bottom)
            VStack {
                Text("Hi")
                    .font(.title)
            }
        }
        .edgesIgnoringSafeArea(.all)
    }
}

推荐阅读