面试题答案
一键面试HStack和VStack主要特性
- 对齐方式
- HStack:默认水平排列视图,对齐方式由
alignment
参数控制,可取值如.top
、.center
、.bottom
等,用于控制子视图在垂直方向上的对齐方式。例如.top
表示子视图在垂直方向顶部对齐。 - VStack:默认垂直排列视图,对齐方式同样由
alignment
参数控制,可取值如.leading
、.center
、.trailing
等,用于控制子视图在水平方向上的对齐方式。例如.leading
表示子视图在水平方向起始位置对齐。
- HStack:默认水平排列视图,对齐方式由
- 间距设置:都可以通过
spacing
参数设置子视图之间的间距。spacing
为nil
时,SwiftUI会使用默认间距,也可以传入具体的数值(如10
)来指定间距大小。
实现示例代码
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
HStack(spacing: 20) {
Button("按钮1") {}
Button("按钮2") {}
Button("按钮3") {}
}
.padding(.top, 20)
VStack(spacing: 10) {
Text("文本标签1")
Text("文本标签2")
}
.padding(.top, 20)
}
}
}
在上述代码中,首先使用VStack
作为根容器,其内部先放置一个HStack
,HStack
中水平排列三个Button
,通过spacing
设置按钮之间间距为20
,并通过.padding(.top, 20)
使HStack
距离顶部有20
的间距。接着在HStack
下方放置另一个VStack
,VStack
中垂直排列两个Text
标签,通过spacing
设置文本标签之间间距为10
,并通过.padding(.top, 20)
使VStack
距离上方HStack
有20
的间距。