问题描述
我对 SwiftUI 还是有点陌生,我遇到了一个我不完全理解的奇怪案例。基本上,我有一个包含一些文本视图但也有一个背景视图的 vstack。理想情况下,我希望背景的宽度可以根据需要增加到一定程度。我想这就是 minWidth
和 maxWidth
在 .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 的正确方法是什么?
谢谢!