SwiftUI 中列表的左对齐或居中对齐多行节标题

问题描述 投票:0回答:4

这是我的代码:

struct ContentView: View {

    var body: some View {
        Form {
            Section(header:
                VStack {
                    Text("Header line 1")
                    Text("This is header line 2")
            }) {
                List {
                    Text("Item 1")
                    Text("Item 2")
                    Text("Item 3")
                    Text("Item 4")
                }
            }
        }
    }
}

问题是我无法让节标题的两行以相同的方式对齐或对齐。我希望它们都左对齐,但我也愿意让它们都居中于屏幕。事实上,对齐方式很奇怪,如下所示:

如有任何建议,我们将不胜感激。

list swiftui header alignment sections
4个回答
3
投票

添加VStack对齐

Section(header:
    VStack(alignment: .leading) { //<< here alignment
        Text("Header line 1")
        Text("This is header line 2")
}) 


3
投票

对于任何寻找如何使其居中的人来说,这对我有用。要删除自动大写,请添加 .textCase(nil)

Section(header:
    HStack {
        Spacer()
        VStack {
            Text("Header line 1")
            Text("This is header line 2")
        }
        Spacer()
    }) {

}
.textCase(nil)

0
投票

使用

headerProminence
修饰符

Section("Section Title") {
   Text("Content")
}
.headerProminence(.increased)

0
投票
Section(
    header: Text(section)
              .listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
)

© www.soinside.com 2019 - 2024. All rights reserved.