我有两个Text
在一个VStack
。两种文本都可以增长到无限的行数。我希望如果文本增长超过屏幕,我可以滚动并查看所有内容。
米第一种方法:
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
?