我有一个有多个子视图的VStack(蓝色背景的那个)。VStack有水平填充。我想为每个子视图设置这个填充,但是有时候我会有例外,我想让那个子视图完全到达显示器的边缘(“ checkout ”按钮上方的两条灰线)。有什么方法可以允许这种情况发生吗?我不想为每个子视图单独设置填充。
xxhby3vn1#
您可以在VStack上应用的视图上应用负填充,这意味着如果您向VStack应用了16个点的填充,例如默认为所有方向.padding(16),则您可以向行应用.padding(.horizontal,-16),它们将拉伸到屏幕末端这里是你想要的行为的示例代码和屏幕截图。
.padding(16)
.padding(.horizontal,-16)
struct VStackPadding: View { var body: some View { VStack{ RoundedRectangle(cornerRadius: 4) .frame(width: .infinity,height: 3) .padding(.horizontal, -16) .padding(.bottom,16) RoundedRectangle(cornerRadius: 4) .frame(width: .infinity,height: 3) }.padding(16) } }
1条答案
按热度按时间xxhby3vn1#
您可以在VStack上应用的视图上应用负填充,这意味着如果您向VStack应用了16个点的填充,例如默认为所有方向
.padding(16)
,则您可以向行应用.padding(.horizontal,-16)
,它们将拉伸到屏幕末端这里是你想要的行为的示例代码和屏幕截图。