为什么SwiftUI图像在封装VStack时添加了额外的填充?

时间:2020-04-29 12:26:32

标签: swiftui padding

我正在努力解决一个非常简单的问题。如果我将文本放入VStack,则顶部没有填充。如果我现在放置一个图像,则有一个填充。请参见以下屏幕截图:

enter image description here

相应的代码是:

struct NewView: View {
    var body: some View {

        VStack(alignment: .leading) {

            Text("Some title")
                .font(.headline)

            VStack {
                Text("Some text")
                    .font(.headline)
                    .padding(.leading)
                    .frame(maxWidth: .infinity)
                    .background(Color.yellow)
            }
            .padding()
            .background(Color(white: 0.90))
            .cornerRadius(10)


            Divider()
                .padding(.vertical)

            Text("Some title")
                .font(.headline)

            VStack {
                Image(systemName: "1.circle.fill")
                    .resizable()
                    .fixedSize()
                    .frame(maxWidth: .infinity)
                    .background(Color.yellow)

            }
            .padding()
            .background(Color(white: 0.90))
            .cornerRadius(10)

        }
    }
}

答案可能非常简单。我错过了什么? 预先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

不同的UI元素之间有不同的默认填充,如果您想使用默认填充,请使用spacing,如下所示

VStack(alignment: .leading, spacing: 0) {