我是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
的{{1}}代码移到}
的{{1}}之后,结果相同。
这是我想要做的,在使用情节提要之前,我会使用一些约束来执行此操作,例如将正确的约束设置为8或类似的值,但是在执行此操作时我有点迷失了SwiftUI方式。
答案 0 :(得分:2)
这里是一种方法:
struct ContentView: View {
var body: some View {
VStack {
HStack {
Spacer()
Text("Hello!")
.padding(.trailing, 8)
}
Text("Hello, World!")
Spacer()
}
}
}
将HStack
与Spacer()
一起使用,将Text("Hello!")
推向右侧。添加.padding(.trailing, 8)
使其与右侧边缘保持8点距离。