【发布时间】:2020-10-10 12:29:58
【问题描述】:
我想在 VStack 之外使用 ScrollView,以便在 VStack 扩展超出屏幕大小时我的内容是可滚动的。
现在我想在 VStack 中使用GeometryReader,它会导致问题,我只能通过设置 GeometryReader 框架来解决,考虑到我使用阅读器来定义视图大小,这对我没有帮助。
这是没有 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 增长到与其内容一样大。我怎样才能做到这一点?
谢谢
【问题讨论】: