如何在SwiftUI中创建与单元格对齐的文本单元格行

如何在SwiftUI中创建与单元格对齐的文本单元格行,swiftui,Swiftui,我想创建这样的东西(在SwiftUI中,每个“单元”之间没有“管道”),假设每个“单元”都是固定大小的 我有以下资料: import Foundation struct Activity { let id: Int let date: String let imageURL: String let distance: Double let elevation: Int } extension Activity { static func al

我想创建这样的东西(在SwiftUI中,每个“单元”之间没有“管道”),假设每个“单元”都是固定大小的

我有以下资料:

import Foundation

struct Activity {
    let id: Int
    let date: String
    let imageURL: String
    let distance: Double
    let elevation: Int
}


extension Activity {
    static func all() -> [Activity] {
        return [
            Activity(id: 1, date: "10/10/2021", imageURL: "map1", distance: 120, elevation: 452),
            Activity(id: 2, date: "10/10/2021", imageURL: "map2", distance: 90, elevation: 34),
            Activity(id: 3, date: "10/10/2021", imageURL: "map3", distance: 460, elevation: 345),
            Activity(id: 4, date: "10/10/2021", imageURL: "map4", distance: 70, elevation: 21),
            Activity(id: 5, date: "10/10/2021", imageURL: "map5", distance: 40, elevation: 345)
        ]
    }
}


    struct ContentView: View {
    
    let activities = Activity.all()
    
    var body: some View {
        
        List(self.activities, id: \.id) { activity in
            
            VStack(alignment: .center) {
                Image(activity.imageURL)
                    .resizable()
                    .frame(width: 300, height: 200)
                    .cornerRadius(16)
               
                HStack(alignment: .lastTextBaseline) {
                    Text("Date").fixedSize().font(.system(size: 10))
                    Spacer()
                    Text("Distance").fixedSize().font(.system(size: 10))
                    Spacer()
                    Text("Elevation").fixedSize().font(.system(size: 10))
                }
                HStack(alignment: .lastTextBaseline) {
                    Text(activity.name).fixedSize()
                    Spacer()
                    Text(String(activity.distance)).fixedSize()
                    Spacer()
                    Text(String(activity.elevation)).fixedSize()
                }
            }
        }
    }
}


但很明显,这不是正确的方法。关于如何创建它,我有什么想法吗?

据我所知,可以这样做


提供的代码是不可测试的。你能详细说明一下吗?我已经更新了。谢谢。太完美了。非常感谢。
var body: some View {
    
    List(self.activities, id: \.id) { activity in
        
        VStack(alignment: .center) {
            Image(activity.imageURL)
                .resizable()
                .frame(width: 300, height: 200)
                .cornerRadius(16)
            
            HStack(alignment: .lastTextBaseline) {
                VStack(alignment: .leading) {
                    Text("Date").fixedSize().font(.system(size: 10))
                    Text(activity.date).fixedSize()
                }
                Spacer()
                VStack(alignment: .leading) {
                    Text("Distance").fixedSize().font(.system(size: 10))
                    Text(String(activity.distance)).fixedSize()
                }
                Spacer()
                VStack(alignment: .leading) {
                    Text("Elevation").fixedSize().font(.system(size: 10))
                    Text(String(activity.elevation)).fixedSize()
                }
            }
        }
    }
}