SwiftUI LazyVGrid 如何调整列的大小以使用显示其所有文本所需的最大宽度

D. *_*ika 5 ios swiftui

我想在具有行标题且文本长度不同的网格中显示数据。第一列的宽度应足以容纳最长的文本。其余列应均匀分布。

可以用下面的例子来说明这个问题:

struct ContentView: View
{
    private var firstColumn: GridItem { GridItem(alignment: .trailing) }
    private var remainingColumns: [GridItem] { [GridItem(alignment: .center), GridItem(alignment: .center)] }
    private var columns: [GridItem] { [firstColumn] + remainingColumns }
    
    var body: some View {
        LazyVGrid(columns: columns, alignment: .leading) {
            ForEach(1..<5) {row in
                // Row Header
                Text("Row \(row)")
                
                // remaining columns
                ForEach(1..<3) {col in
                    Text("\(row),\(col)")
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,对于 GridItems,我只能指定固定宽度或最小和最大宽度,但不能指定“最佳”宽度之类的值。

有什么想法如何做到这一点?