我怎样才能推动这两种观点?Spacer() 不起作用

n0x*_*r90 5 ios swiftui

我试图将一个 GeometryReader 作为按钮推到屏幕底部,但 Spacer 在这里不起作用......这个想法是让应用程序响应所有屏幕尺寸。

VStack {
    GeometryReader { geometry in
        Text("VeganFood")
            .font(.system(size: geometry.size.width/12, weight: .bold))
            .foregroundColor(.white)
            .frame(maxWidth: .infinity)
            .frame(maxHeight: 200)
    }
    
    /// Spacer doesn't work here

    GeometryReader { geometry in
        Button(action: { }) {
            Text("Let's get started!")
                .font(.system(size: geometry.size.width/30, weight: .medium, design: .rounded))
                .frame(width: geometry.size.width/3, height: geometry.size.height/7)
                .foregroundColor(.white)
                .background(Color.black)
                .cornerRadius(20.0)
        }
        
        .frame(maxWidth: .infinity)
        .frame(maxHeight: 200)
    }
}
Run Code Online (Sandbox Code Playgroud)

让我们开始吧! 按钮居中,但应位于底部

Yod*_*ama 1

  • GeometryReader 尽可能多地占用空间。
  struct ContentView: View {
        var body: some View {
            VStack {
                GeometryReader { geometry in
                    Text("VeganFood")
                        .font(.system(size: geometry.size.width/12, weight: .bold))
                        .foregroundColor(.red)
                        .frame(maxWidth: .infinity)
                        .frame(maxHeight: 200)
                }
                
                GeometryReader { geometry in
                    VStack { //<= here
                        Spacer() //<=here
                        Button(action: { }) {
                            Text("Let's get started!")
                                .font(.system(size: geometry.size.width/30, weight: .medium, design: .rounded))
                                
                        }
                        .frame(width: geometry.size.width/3, height: geometry.size.height/7)
                        .foregroundColor(.white)
                        .background(Color.black)
                        .cornerRadius(20.0)
                        .frame(maxWidth: .infinity)
                        
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

可能有一些不同的方法

在此输入图像描述