首页 > 解决方案 > 如何在 SwiftUI 中调整背景图像的大小而不影响屏幕视图?

问题描述

我有一个看起来像这样的内容视图:

在此处输入图像描述

内容视图的代码是:

    var body: some View {
    ZStack(alignment: .bottom) {
        
        VStack {
            if selectedTab == "gearshape" {
                GearshapeView()
            }
        }
        CustomTabBar(selectedTab: $selectedTab)
    }
}

这是 GearshapeView 的代码:

 var body: some View {

Color.blue
.edgesIgnoringSafeArea(.all)

}

现在我想在背景中添加一张图片并保持菜单的大小和以前一样。

    var body: some View {

            Image("s7")
                .resizable()
                .aspectRatio(contentMode: .fill)
                .ignoresSafeArea()

       }

不幸的是,当我调整图片大小以适应屏幕时,菜单也会调整大小。

在此处输入图像描述

关于如何保持静态而不是拉伸的任何想法?

标签: swiftimageswiftuiresizable

解决方案


通过使用几何阅读器解决它:

  GeometryReader { geo in
            Image("s7")
                .resizable()
                .aspectRatio(contentMode: .fill)
                .frame(width: geo.size.width, height: geo.size.height)
    }
                .edgesIgnoringSafeArea(.all)
            

推荐阅读