SwiftUI VStack 右对齐单个元素

SwiftUI VStack align right single element

我是 SwiftUI 的新手,这次我尝试将单个元素(图像)右对齐,然后其余内容应居中对齐。

就像在 HStack 上使用 Spacer() 而在另一侧使用 Spacer() 时发生的情况。

我阅读了有关 .alignmentGuide 的内容,它有点令人困惑,但我尝试以这种方式使用它:

struct ContentView: View {
    var body: some View {
        VStack {
            HStack {
                Text("Hello!").alignmentGuide(.trailing) {
                    v in v[HorizontalAlignment.trailing]
                }
            }
            Text("Hello, World!")
            Spacer()
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

但这根本没有改变,两个 Text 都是居中对齐的。

我尝试将 .alignmentGuide 代码移动到 HStack} 之后,结果相同。

这就是我想要做的,在使用情节提要之前,我会使用一些约束来做到这一点,比如将正确的约束设置为 8 或其他东西,但在做的时候我有点迷茫它是 SwiftUI 的方式。

这是一种方法:

struct ContentView: View {
    var body: some View {
        VStack {
            HStack {
                Spacer()
                Text("Hello!")
                    .padding(.trailing, 8)
            }
            Text("Hello, World!")
            Spacer()
        }
    }
}

使用 HStackSpacer()Text("Hello!") 推到右边。添加 .padding(.trailing, 8) 使其远离右边缘 8 点。