如何在 SwiftUI 中调整背景图像的大小而不影响屏幕视图?

问题描述

我有一个如下所示的内容视图:

enter image description here

内容视图的代码是:

    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()

       }

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

enter image description here

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

解决方法

使用几何阅读器解决了这个问题:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...