私はまだ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 を完全に押し出す。
フレームをテキストに移動しようとしましたが、同じ結果が得られます。maxWidth までのコンテンツでのみ成長するバックグラウンドを持つ VStack を取得する正しい方法は何ですか?
ありがとうございました!