返回
在 SwiftUI 中实现视图居中的若干种方法
IOS
2023-09-15 10:58:12
前言
在 SwiftUI 中,视图居中是一个常见的需求。它可以用于在屏幕上创建对齐的布局、将视图放置在另一个视图的中心,或者将视图放置在安全区域内。
方法一:使用 VStack 和 HStack
VStack 和 HStack 是 SwiftUI 中的两个布局视图,它们可以用于在垂直或水平方向上排列视图。为了将视图居中,我们可以将它放在一个 VStack 或 HStack 中,然后将 VStack 或 HStack 的 alignment 参数设置为 .center。
struct ContentView: View {
var body: some View {
VStack {
Text("Hello World!")
.alignmentGuide(.center) { _ in 0 }
}
.frame(width: 200, height: 200)
}
}
方法二:使用 AlignmentGuide
AlignmentGuide 是一种可以在 SwiftUI 中用于将视图与特定位置对齐的工具。我们可以使用 AlignmentGuide 将视图与另一个视图的中心对齐,或者将视图与安全区域的中心对齐。
struct ContentView: View {
var body: some View {
Text("Hello World!")
.alignmentGuide(.center) { _ in 0 }
}
}
方法三:使用 Anchor
Anchor 是 SwiftUI 中的一种可以在视图之间创建约束的工具。我们可以使用 Anchor 将视图与另一个视图的中心对齐,或者将视图与安全区域的中心对齐。
struct ContentView: View {
var body: some View {
Text("Hello World!")
.anchor(alignment: .center) { anchor in
anchor.x == $centerX
anchor.y == $centerY
}
}
}
方法四:使用 Safe Area
Safe Area 是 SwiftUI 中的一个视图,它表示屏幕上安全显示内容的区域。我们可以将视图放在 Safe Area 中,然后将 Safe Area 的 alignment 参数设置为 .center。
struct ContentView: View {
var body: some View {
SafeA