1

以下 SwiftUI 表单将错误地呈现该部分的标题和内容。部分标题应大写并具有背景颜色。这些行应该像一个列表一样被标记,这意味着它们应该有列表分隔符和填充。

struct ContentView: View {
    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("Test")) {
                    ForEach(0..<5) { index in
                        Text("Row \(index)")
                    }
                }
                .navigationBarItems(trailing: Button(action: {}, label: { Text("Dummy") }))
            }
            .navigationTitle(Text("Navigation title"))
        }
    }
}

结果:

不正确地呈现节标题和行

4

1 回答 1

2

格式不正确的原因是.navigationBarItems不应附加到Section而是向下移动到Form

Form {
    Section(header: Text("Test")) {
        ForEach(0..<5) { index in
            Text("Row \(index)")
        }
    }
}
.navigationBarItems(trailing: Button(action: {}, label: { Text("Dummy") }))
.navigationTitle(Text("Navigation title"))

这会正确呈现表单:

正确呈现的形式

如果您使用较新的.toolbar修饰符并将其附加到Section,该部分将正确呈现,但按钮根本不会显示。但是.toolbar仅适用于 iOS 14 及更高版本。

于 2021-08-04T12:51:03.230 回答