SwiftUI 向视图添加 -y 偏移量但将视图拉伸到底部

Mat*_*ard 8 swiftui

我的代码中有 2 个视图,一个 VStack,然后是一个自定义视图。

我正在向 -75 的第二个视图添加偏移量,以将其移动到第一个视图的顶部。

这是我当前的代码:

Group {
       VStack {
           //First View
           VStack {
               Image("LogoCrest")

                NavigationLink(destination: LocationSearch()) {
                    Text("Find a location")
                    .foregroundColor(Color.white)
                    .bold()
                    .padding()
                }
                .frame(minWidth: 0, maxWidth: .infinity, alignment: Alignment.center)
                .background(Color(red: 81 / 255, green: 175 / 255, blue: 67 / 255))
                .cornerRadius(7)
                .padding()

           }
           .padding(.top, 75)
           .padding(.bottom, 75)
           .frame(minWidth: 0, maxWidth: .infinity, alignment: Alignment.center)
           .background(Color(red: 49 / 255, green: 49 / 255, blue: 49 / 255))

           //Second view
           CircuitList(Circuits: Circuits)
            .offset(y: -75)
           .padding()
       }
     }
    .background(Color(red: 232 / 255, green: 232 / 255, blue: 232 / 255))
    .edgesIgnoringSafeArea(.top)
Run Code Online (Sandbox Code Playgroud)

如何增加第二个视图的高度,使其始终位于底部(请参阅下图中的黑线,了解我想要的额外高度)?

我的看法

Mat*_*ard 12

我找到了答案。由于我y:-75在视图中添加了偏移量,因此我也必须添加y:-75填充。

CircuitList(Circuits: Circuits)
    .offset(y: -75)
    .padding()
    .padding(.bottom, -75)
Run Code Online (Sandbox Code Playgroud)

  • 是的,当我们使用 offset() 修饰符时,我们正在更改视图应该渲染的位置,而无需实际更改其底层几何图形。这就是为什么我们必须添加负填充。 (4认同)