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()
}
}
}
使用 HStack
和 Spacer()
将 Text("Hello!")
推到右边。添加 .padding(.trailing, 8)
使其远离右边缘 8 点。
我是 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()
}
}
}
使用 HStack
和 Spacer()
将 Text("Hello!")
推到右边。添加 .padding(.trailing, 8)
使其远离右边缘 8 点。