我正在尝试做一些在我脑海中非常直接的事情。
我想要一个 VStack 的子视图根据其内容动态更改其高度(下面示例中的 ProblematicView)。
它通常工作得很好,但在这种情况下, ProblematicView 包含一个 GeometryReader (以模拟多行的 HStack)。
但是, GeometryReader 贪婪地占用所有空间(如果您删除 GeometryReader 及其内容,则会发生预期的行为)。不幸的是,在父视图(下面示例中的 UmbrellaView)上,UmbrellaView VStack 将自身的 50% 分配给 ProblematicView,而不是显示视图内容的最小尺寸。
我花了几个小时玩 min/ideal/maxHeight 框架参数,但无济于事。
我想要实现的目标可行吗?
我在底部添加了图片以在视觉上澄清。
struct UmbrellaView: View {
var body: some View {
VStack(spacing: 0) {
ProblematicView()
.background(Color.blue)
ScrollView(.vertical) {
Group {
Text("A little bit about this").font(.system(size: 20))
Divider()
}
Group {
Text("some").font(.system(size: 20))
Divider()
}
Group {
Text("group").font(.system(size: 20)).padding(.bottom)
Divider()
}
Group {
Text("content").font(.system(size: 20))
}
}
}
}
}
struct ProblematicView: View {
var body: …Run Code Online (Sandbox Code Playgroud) swiftui ×1