📅  最后修改于: 2023-12-03 14:51:11.259000             🧑  作者: Mango
在 SwiftUI 中,可以使用 VStack 来纵向排列视图元素。然而,默认情况下,VStack 的宽度只会与其子视图的宽度一样。如果希望将 VStack 水平方向上填充满整个屏幕宽度,该怎么做呢?下面介绍两种实现的方法。
可以在 VStack 的底部添加一个 Spacer,以将其余空间填充满,从而使 VStack 填充整个屏幕的宽度。示例代码如下:
VStack {
// 子视图放在此处
Spacer()
}
其中,将 Spacer 添加到 VStack 的底部,以确保 VStack 填充整个屏幕的宽度。
另一种方法是使用 GeometryReader,该视图提供了存储布局信息的容器。可以在 GeometryReader 中包裹 VStack,然后在 VStack 中添加一个可变的宽度,以使其填充整个屏幕的宽度。示例代码如下:
GeometryReader { geometry in
VStack {
// 子视图放在此处
}
.frame(width: geometry.size.width)
}
其中,将 VStack 的宽度设置为 GeometryReader 的宽度,以使其填充整个屏幕的宽度。
总之,以上两种方法都可以使 VStack 填充整个屏幕的宽度。根据需要和喜好,可以选择其中一种来实现。