1

我正在尝试堆叠两个充满圆圈的 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")
            }
}

当前绘制的视图是什么。 希望两个 HStack 靠得更近。

4

1 回答 1

1

由于Circles 没有高度限制,因此它们占用了所有可用的垂直空间,即使可见形状不占用该空间。在水平方向上,它们受到设备/屏幕宽度的限制。

您可以添加.aspectRatio(contentMode: .fit)以使它们在垂直方向上受到限制,并且仅限制在它们需要占用的空间中:

Circle()
   .aspectRatio(contentMode: .fit)
   .foregroundColor(light.color)

完成后,如果您还想将它们推向屏幕顶部,您可以Spacer在 s 下方添加一个HStack

于 2021-05-08T20:56:34.987 回答