私は2つ持ってText
いVStack
ます。どちらのテキストも無制限に行数を増やすことができます。テキストが画面よりも大きくなった場合は、スクロールしてすべてのコンテンツを表示できるようにしたいと考えています。
Mi 最初のアプローチ:
var body: some View {
VStack(alignment: .center, spacing: 0) {
VStack(alignment: .leading, spacing: 8) {
Text(title)
.font(.title)
Text(subtitle)
.font(.subheadline)
}
.frame(maxWidth: .infinity)
.background(Color.orange)
.padding(.top, 24)
.padding(.horizontal, 24)
Button(buttonTitle) { }
.frame(maxWidth: .infinity, minHeight: 50)
.background(Color.red)
.foregroundColor(.white)
.padding(.all, 24)
}.background(Color.gray)
.frame(maxWidth: UIScreen.main.bounds.size.width - 20)
}
結果:
もちろんスクロールはありません...だから私はScrollViewを追加しました:
var body: some View {
VStack(alignment: .center, spacing: 0) {
ScrollView {
VStack(alignment: .leading, spacing: 8) {
Text(title)
.font(.title)
Text(subtitle)
.font(.subheadline)
}
.frame(maxWidth: .infinity)
.background(Color.orange)
.padding(.top, 24)
.padding(.horizontal, 24)
}
Button(buttonTitle) { }
.frame(maxWidth: .infinity, minHeight: 50)
.background(Color.red)
.foregroundColor(.white)
.padding(.all, 24)
}.background(Color.gray)
.frame(maxWidth: UIScreen.main.bounds.size.width - 20)
}
結果:
できます!しかし、テキストが画面の高さ全体を埋めるのに十分でない場合ScrollView
でも、利用可能なスペース全体に拡大され、コンテンツをラップしてスクロール機能を「無効」にしたいと考えています。
少量のテキストで得られるもののサンプル:
少量のテキストで取得したいもののサンプル:
ScrollView
問題は、親の高さ全体に拡張するのではなく、コンテンツを「ラップ」するようにするにはどうすればよいView
ですか?