向HStack添加图像会影响间距

时间:2019-10-17 12:33:59

标签: swiftui

我有以下代码:

import SwiftUI

struct ContentView: View {
    var isShowingImage = true
    var body: some View {
        VStack(alignment: .leading) {
            HStack {
                Text("Lorem ipsum").fontWeight(.bold).lineLimit(1).border(Color.green)
                if isShowingImage {
                    Image(systemName: "star.fill")
                    .resizable()
                    .frame(width: 16, height: 16).border(Color.blue)
                }
            }.border(Color.black)
            Text("Ad veritatis totam asperiores est error. Dolore perspiciatis unde aut.").lineLimit(1).border(Color.purple)
            Text("Dolorem illum").font(.footnote).border(Color.red)
        }.padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        HStack {
            ContentView()
            ContentView(isShowingImage: false)
        }
    }
}

这将产生以下结果:

enter image description here

如果isShowingImage为true,则显示图像。这还会在第一个HStack和文本“广告验证”之间添加填充。如果未显示图像,则没有填充。造成填充的原因是什么?

2 个答案:

答案 0 :(得分:1)

不确定是什么原因导致的,但是如果使用VStack(alignment: .leading, spacing: 0),空格就会消失

答案 1 :(得分:0)

答案是,有默认间距之类的东西。如果您将堆栈间距保留为零,那么堆栈将选择默认间距。