如何在 iPhone 上使用 SwiftUI 显示表格数据?

Zon*_*eva 5 alignment tableview swiftui

我正在为当地的体育联盟开发一个应用程序。

一个视图将是当前排名,每行有几个字段:球队名称、已玩的比赛、得分等。我希望球队列左对齐,其他列右对齐。

似乎最好的答案是 SwiftUI 的 Table(),但在 iPhone 上,它只显示第一列。

我尝试过将 HStack{} 与 Text() 一起使用:

List {
    ForEach(selectedStats()) { stats in
        HStack {
            Text (stats.name)
            Spacer()
            Text ("\(stats.totalMatches)")
            Text ("\(stats.standingsPoints)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我很难让列在表格中的多行中左对齐或右对齐。

有没有办法让 Tables 工作?或者如何对齐我的列?

(PS,我使用了 TableView 标签,因为没有特定于 Table 或 SwiftUI-Table 的标签。如果可以添加的话那就太好了。)

Zon*_*eva 0

发布后,我继续进行研究,并发现了 Paul Hudson 因《Hacking with Swift》而闻名的一些内容。

对齐和对齐指南

如何创建自定义对齐参考线

基于这两个,我想出了这个:

extension HorizontalAlignment {
    enum GP: AlignmentID {
        static func defaultValue(in context: ViewDimensions) -> CGFloat {
            context[.trailing]
        }
    }
    
    static let gp = HorizontalAlignment(GP.self)
}
Run Code Online (Sandbox Code Playgroud)

然后我申请

.alignmentGuide(.gp) { d in d[HorizontalAlignment.trailing] }
Run Code Online (Sandbox Code Playgroud)

我想要右对齐的每个元素。

似乎也能做到这一点。