0

在我的内容视图中,我想显示一个小表格。举例说明:在 HTML 中我只想说

<table>
    <tr><td>First item</td><td>First value</td></tr>
    <tr><td>Second item</td><td>Second value</td></tr>
    <tr><td>Third item</td><td>Third value</td></tr>
</table>

在 SwiftUI 中,我可以这样做:

VStack {
    HStack {
        Text("First item")
        Spacer()
        Text("First value")
    }
    HStack {
        Text("Second item")
        Spacer()
        Text("Second value")
    }
    HStack {
        Text("Third item")
        Spacer()
        Text("Third value")
    }
}

但是,这些HStack()s 将使用所有可用空间。我想动态地将表格的宽度缩小到最小,就像 HTML 一样。我知道我可以使用 a LazyVGrid,但是我需要自己计算列宽。

看起来很简单......只需遍历每一行Text(),并注意最大值。

但是:似乎没有简单的方法来获得视图的尺寸而不先渲染它

我迷路了。我应该在我的视图的一个孤独角落以透明颜色渲染Text()s 以获得尺寸吗?

我觉得这应该很容易,而且我遗漏了一些明显的东西。

4

0 回答 0