4

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

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

我读过.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 方式时我有点迷茫。

在此处输入图像描述

4

1 回答 1

12

这是一种方法:

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

使用 anHStack和 a向右Spacer()推。Text("Hello!")添加.padding(.trailing, 8)以使其远离右边缘 8 点。

于 2020-08-18T01:37:52.783 回答