相关疑难解决方法(0)

根据其元素动态调整 GeometryReader 高度

我正在尝试做一些在我脑海中非常直接的事情。

我想要一个 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

8
推荐指数
2
解决办法
1730
查看次数

标签 统计

swiftui ×1