首页 > 解决方案 > Swift UI 表单 - 为什么有这么多空间?

问题描述

为什么我的表格有这么多空间?

我想在视图顶部有第一个 TextField 我希望有人可以帮助我谢谢你们。

在此处输入图像描述

代码:

var body: some View {
        NavigationView{
            Form{
                Section(header: Text("Kunde")){
                    TextField("Vorname", text: $vorName)
                    TextField("Name", text: $name)
                }.frame(alignment: .top)
                Section(header: Text("Telefonnummer")) {
                    TextField("Mobil", text: $number)
                        .lineSpacing(10)
                        .multilineTextAlignment(.leading)
                        .lineLimit(10)
                        .keyboardType(.numberPad)
                    TextField("Festnetz", text: $home)
                        .lineSpacing(10)
                        .multilineTextAlignment(.leading)
                        .lineLimit(10)
                        .keyboardType(.numberPad)
                } 
   }
}

标签: formsswiftui

解决方案


从我在屏幕截图中看到的 - 应用程序NavigationView在层次结构中的某个位置。NavigationView然后在当前视图中添加了另一个。

第一步NavigationView是从当前屏幕中删除嵌套。在这种情况下,一个NavigationView就足够了。因此,代码变为:

var body: some View {
    Form {
        Section(header: Text("Kunde")){
        ....
    }
}

然后,导航栏会添加一些空间,因为它automatic默认具有样式。 具有自动导航栏样式的表单

所以第二步就是去掉这个空间。我们可以把导航栏的样式改成inline这样:

var body: some View {
    Form {
        ... the form code ...
    }
    .navigationBarTitle("Title", displayMode: .inline) // the title can be empty string if needed
}

它最终变成了一个布局精美的表格:

改变的结果


推荐阅读