SwiftUI 初学者:带有表单和列表的 VStack

问题描述

我是 SwiftUI 布局的初学者(不是编码),但我遇到了问题

enter image description here

代码如下:

var body: some View {
    NavigationView {
        vstack {
            Form {
                TextField("Nome",text: $name)
            }
            .navigationBarTitle("Aggiungi dispensa",displayMode: .inline)
            .navigationBarItems(trailing: Button("Aggiungi") {
                if self.name.count > 0 {
                    let item = dispItem(name: self.name)
                    self.dispense.items.append(item)
                }
                self.name = ""
            })
            
            List {
                let sortedItems = dispense.items.sorted {
                    $0.name < $1.name
                }
                ForEach(sortedItems) { item in
                            Text(item.name)
                                .font(.headline)
                }
                .onDelete(perform: removeItems)
            }
        }
    }
}

基本上是一个由Form和List组成的vstack 但是我不明白顶部的空白区域以及Form和List之间的空白区域。

谢谢 马可

解决方法

正如@Asperi 在其评论中的链接中指出的那样,您可以使用 VStack(spacing: 0) 删除 FormList 之间的空格。

对于导航栏链接和标题之间的空间,您似乎将 NavigationView 项相互嵌套。

调用此视图的视图(是否称为“Impostazione”?)有一个 NavigationView,因此您的子视图(“Aggiungi Dispensa”)不需要自己的 NavigationView

相关问答

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