swift - 删除嵌入在 Stack 中的 HStack 之间的间距
问题描述
我正在尝试堆叠两个充满圆圈的 HStack,但是,无论我做什么,我都无法摆脱两者之间的间距。
VStack {
VStack(spacing: 0) {
HStack {
ForEach(viewModel.lights) { light in
Circle()
.foregroundColor(light.color)
}
}
HStack {
ForEach(viewModel.lights) { light in
Circle()
.foregroundColor(light.color)
}
}
} .padding()
Button(action: viewModel.start ) {
Text("Start")
}
}
解决方案
由于Circle
s 没有高度限制,因此它们占用了所有可用的垂直空间,即使可见形状不占用该空间。在水平方向上,它们受到设备/屏幕宽度的限制。
您可以添加.aspectRatio(contentMode: .fit)
以使它们在垂直方向上受到限制,并且仅限制在它们需要占用的空间中:
Circle()
.aspectRatio(contentMode: .fit)
.foregroundColor(light.color)
完成后,如果您还想将它们推向屏幕顶部,您可以Spacer
在 s 下方添加一个HStack
。