代码之家  ›  专栏  ›  技术社区  ›  Rolando

让子视图占据SwiftUI中2/3的空间,而不是默认的50/50分割,最好的方法是什么?

  •  0
  • Rolando  · 技术社区  · 4 年前

    在SwiftUI中使用VStack时,如果你有2个项目,它总是占这两个项目的50%。

    NavigationView {
        VStack {
            Text("SwiftUI").background(Color.blue)
            Divider()
            Text("rocks").background(Color.red)
        }
    }
    

    有没有办法让它,比如说,背景/第二个视图 Text("rocks") 可能占据整个视野的2/3或66.66%?或者,ZStacks不应该这样做吗?

    1 回复  |  直到 4 年前
        1
  •  0
  •   Asperi    4 年前

    你需要 GeometryReader 为此,例如

    NavigationView {
        GeometryReader { gp in
            VStack {
                Text("SwiftUI")
                    .background(Color.blue)
                Divider()
                Text("rocks")
                    .frame(maxHeight: gp.size.height * 2 / 3) // for resizable
                    //.frame(height: gp.size.height * 2 / 3) // for exact
                    .background(Color.red)
            }
        }
    }