相关疑难解决方法(0)

SwiftUI - 在不修改视图大小的情况下使用 GeometryReader

我有一个标题视图,它使用edgesIgnoringSafeArea. 要正确对齐标题​​视图的内容/子视图,我需要safeAreaInsetsfrom GeometryReader。但是,在使用 时GeometryReader,我的视图不再具有合适的尺寸。

不使用的代码 GeometryReader

struct MyView : View {
    var body: some View {
        VStack(alignment: .leading) {
            CustomView()
        }
        .padding(.horizontal)
        .padding(.bottom, 64)
        .background(Color.blue)
    }
}
Run Code Online (Sandbox Code Playgroud)

预览

预期的

代码使用 GeometryReader

struct MyView : View {
    var body: some View {
        GeometryReader { geometry in
            VStack(alignment: .leading) {
                CustomView()
            }
            .padding(.horizontal)
            .padding(.top, geometry.safeAreaInsets.top)
            .padding(.bottom, 64)
            .background(Color.blue)
            .fixedSize()
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

预览

在此处输入图片说明

有没有办法在GeometryReader不修改底层视图大小的情况下使用?

swift swiftui

17
推荐指数
3
解决办法
1万
查看次数

标签 统计

swift ×1

swiftui ×1