我有一个VStack
3Text
秒。每个都有不同长度的字符串。我希望VStack
' 的宽度足够大以适合最宽的Text
,但我也希望所有三个Text
s 水平填充 VStack 。
默认情况下,使用以下代码:
VStack(spacing: 4.0) {
ForEach(1..<4) {
Text(Array<String>(repeating: "word", count: $0).joined(separator: " "))
.background(Color.gray)
}
}
我得到:
我想:
在 UIKit 中,我可以使用UIStackView
属性alignment
设置为.fill
. VStack
没有.fill
对齐。我看到的建议解决方案是使用 for 修改堆栈视图的每个子项(即 each )Text
的框架。.infinity
maxWidth
我发现的建议是用 s 修改Text
s .frame(maxWidth: .infinity)
。然而,这使得整体VStack
扩展到(大概)它的最大尺寸:
有没有办法让它VStack
自然地长到它最宽的孩子的大小,而不是更大,同时让它所有的孩子都一样宽?