我是一名有用的助手,可以为您翻译文本。
我得到:
我发现的建议是使用
我有一个包含3个Text
的VStack
。每个Text
都有不同长度的字符串。我希望VStack
的宽度恰好足够容纳最宽的Text
,但我也希望所有三个Text
在水平方向上填充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
对齐方式。我看到的建议解决方法是使用.infinity
作为每个堆栈视图子元素(即每个Text
)的maxWidth
来修改每个子元素的框架。我发现的建议是使用
.frame(maxWidth: .infinity)
修改Text
。 但是,这会使整个VStack
扩展到(可能是)其最大尺寸:
有没有一种方法可以使 VStack
自然地增长到其最宽的子元素的大小,而不超过此大小,并使所有子元素具有相同的宽度?