SwiftUI 表单部分标题和行的格式不正确

Posted

技术标签:

【中文标题】SwiftUI 表单部分标题和行的格式不正确【英文标题】:SwiftUI form section title and rows have incorrect formatting 【发布时间】:2021-08-04 12:51:03 【问题描述】:

以下 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"))
        
    


结果:

【问题讨论】:

【参考方案1】:

格式不正确的原因是.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 及更高版本中使用。

【讨论】:

以上是关于SwiftUI 表单部分标题和行的格式不正确的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 如何在表单中添加“字母部分”和字母跳线?

使用正确的列和行格式访问对 Excel 工作表的查询

具有多个编辑按钮的 SwiftUI 表单

SwiftUI 2.0如何更改表单部分的背景颜色[重复]

Drupal Views:如何设置列和行的标题?

使用 TableCellRender 设置 JTable 列和行的颜色