代码之家  ›  专栏  ›  技术社区  ›  Benzy Neez

如何使用HStack和VStack布局的理想尺寸,而不是最大尺寸

  •  0
  • Benzy Neez  · 技术社区  · 2 年前

    HStack Vstack 它们的布局通常基于子视图的最大大小。以下是一个示例:

    HStack {
        Color.orange
            .frame(idealWidth: 200, maxWidth: .infinity)
        Color.purple
            .frame(idealWidth: 100, maxWidth: .infinity)
    }
    .padding()
    .frame(height: 100)
    

    MaxWidth

    然而,当相同 HStack 嵌套在 ScrollView ,则使用理想尺寸:

    ScrollView(.horizontal) {
        HStack {
            Color.orange
                .frame(idealWidth: 200, maxWidth: .infinity)
            Color.purple
                .frame(idealWidth: 100, maxWidth: .infinity)
        }
    }
    .padding()
    .frame(height: 100)
    

    IdealWidth

    所以我想知道,有没有办法 HStack VStack 将它们的布局基于理想大小,而不是最大大小,而不在内部嵌套 卷轴视图 ?

    一种解决方案可能是,如果子视图可以以某种方式进行包装,从而将其理想大小返回为最大大小。有什么建议吗?

    当然,一种习俗 Layout 可以用来做这项工作。但不走这条路能做到吗?

    1 回复  |  直到 2 年前
        1
  •  2
  •   lorem ipsum    2 年前

    尝试

    .fixedSize()
    

    将此视图固定为理想大小。

    https://developer.apple.com/documentation/swiftui/view/fixedsize()