在我的内容视图中,我想显示一个小表格。举例说明:在 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 以获得尺寸吗?
我觉得这应该很容易,而且我遗漏了一些明显的东西。