【问题标题】:How do i prevent a form from taking up entire view如何防止表单占据整个视图
【发布时间】:2025-12-28 00:10:11
【问题描述】:

我在 VStack 中有一个表单和一个按钮,但是表单几乎占据了整个视图,并且按钮被强制放在底部。我试图让按钮紧跟在表单之后,但到目前为止,我对填充和间隔的尝试都失败了。还有其他人知道如何防止表单占据整个视图吗?

【问题讨论】:

    标签: swift swiftui vstack


    【解决方案1】:

    尝试将按钮移动到表单中。

      VStack {
        Form {
          Text("blah")
          Button("blubb") { }
        }
      }
    

    【讨论】:

      【解决方案2】:

      您有两种解决方案: 1 - 如果您知道表单的框架,则可以为表单设置框架并为 VStack 设置无限高以填满整个屏幕

      var body: some View {
              VStack {
                  Form {
                      Text("blah")
                  }.frame(height: 300)
                  Button("blubb") { }
              }.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
          }
      

      2 - 将 Button 嵌入 Form 并使用 Section 分隔

      VStack {
         Form {
            Text("blah")
            Section {
               Button("blubb") { }
            }
         }
      }
      

      【讨论】: