如何忽略父视图的填充SwiftUI

r1wp621o  于 2023-01-12  发布在  Swift
关注(0)|答案(1)|浏览(127)

我有一个有多个子视图的VStack(蓝色背景的那个)。VStack有水平填充。我想为每个子视图设置这个填充,但是有时候我会有例外,我想让那个子视图完全到达显示器的边缘(“ checkout ”按钮上方的两条灰线)。有什么方法可以允许这种情况发生吗?我不想为每个子视图单独设置填充。

xxhby3vn

xxhby3vn1#

您可以在VStack上应用的视图上应用负填充,这意味着如果您向VStack应用了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)
    }
}

相关问题