SwiftUI:未应用对齐

网鲨1000

我有一个你不明白的小例子:为什么我的 ZStack 的对齐没有应用于它的所有孩子?TopView 保持在顶部,但我希望每个孩子都在右下角:

struct ContentView: View {
    var body: some View {
        ZStack(alignment: .bottomTrailing) {
            VStack {
                TopView()
                Spacer()
            }
            Text("A new layer")
        }.padding()
    }
}

struct TopView: View {
    var body: some View {
        HStack(alignment: .top) {
            VStack {
                Text("SwiftUI")
                Text("Layout")
            }
            Spacer()
            Image(systemName: "star")
        }
    }
}

在此处输入图片说明

亚历山大·格拉博夫斯基

默认情况下,所有视图都位于所需区域的中间。即使您正在使用VStack它,它也会位于屏幕中间并且高度为 2 Text(如您的示例中所示)。ZStack具有相同的行为 - 它将尽可能小并且位于安全区域的中心。

Spacer就在TopView尝试占用所有可用空间。就像Spacer明星和文字之间一样。所以VStack在你的ZStack技术上是 on .bottomTrailing,但会占用所有可用空间。只需尝试删除或更改Spacer's 的位置

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章