我对 SwiftUI 还是有点陌生,我遇到了一个我不完全理解的奇怪案例。基本上,我有一个包含一些文本视图但也有背景视图的 VStack。理想情况下,我希望背景的宽度可以增长到一定程度。我认为这就是minWidth
andmaxWidth
的用途.frame()
我从这个开始,它似乎正在工作:
struct TestView: View {
var body: some View {
VStack {
Text("Title")
Text("Message")
}
.background(
Rectangle()
.foregroundColor(Color.blue)
.frame(minWidth: 0,
maxWidth: 270)
)
}
}
到目前为止一切都很好,但是当我使文本足够大以至于需要换行时,这就是我得到的。
因此,似乎通过将框架放在背景周围只会使最小/最大影响该背景视图。如果我然后尝试将框架放在 VStack 周围,我会得到:
struct TestView: View {
var body: some View {
VStack {
Text("Title")
Text("Message")
}
.frame(minWidth: 0,
maxWidth: 270)
.background(
Rectangle()
.foregroundColor(Color.blue)
)
}
}
即使我不认为我有什么东西可以推出,它仍然会推出完整的 maxWidth。
我也尝试将框架移动到文本,但结果相同。什么是让具有背景的 VStack 仅随着其内容增长到 maxWidth 的正确方法?
谢谢!