我希望在VStack之外使用ScrollView,这样如果VStack超出屏幕大小,我的内容就可以滚动。现在我想在VStack内使用GeometryReader,但它会导致问题,我只能通过设置GeometryReader的框架来解决这个问题,但考虑到我使用读取器来定义视图大小,这并没有真正帮助我。
以下是没有ScrollView的代码,它可以正常工作:
以下是没有ScrollView的代码,它可以正常工作:
struct MyExampleView: View {
var body: some View {
VStack {
Text("Top Label")
.background(Color.red)
GeometryReader { reader in
Text("Custom Sized Label")
.frame(width: reader.size.width, height: reader.size.width * 0.5)
.background(Color.green)
}
Text("Bottom Label")
.background(Color.blue)
}
.background(Color.yellow)
}
}
这将导致以下图像:
自定义大小的标签应该是全宽,但高度只有一半。如果我在一个ScrollView中包含同样的代码,会发生这种情况:
不仅所有内容都变小了,而且自定义大小的标签高度也被忽略了。如果我设置GeometryReader的高度,我可以调整这种行为,但我希望GeometryReader可以随其内容增长。我该如何做到这一点?
谢谢