SwiftUI在图像周围生成多余的空间

时间:2019-12-23 01:41:46

标签: swiftui

以下代码生成一个带有文本视图的简单VStack,该视图之间没有间距(行1和2)。

但是,将图像添加到第三行(绿色)会在整个行的上方和下方添加不必要的间距。

struct ContentView: View {
  var body: some View {
    VStack {
      HStack {
        Text("one thing")
      }.background(Color(.yellow))
      HStack {
        Text("nothing")
      }.background(Color(.red))
      HStack {
        Text("three")
        Image(systemName: "star")
          .resizable()
          .frame(width: 8, height: 8)
      }.background(Color(.green))
      HStack {
        Text("three things")
      }.background(Color(.red))
    }
  }
}

如何避免多余的多余空间?

该空间显示与图像大小无关(即使图像尺寸只有几个像素)。

当然,我想知道为什么会生成空间。

感谢您的帮助

上面的代码的屏幕截图:

Output:

1 个答案:

答案 0 :(得分:1)

您可以调整VStack的间距:

var body: some View {
            VStack (spacing: 0) {
                 HStack {
                   Text("one thing")
                 }.background(Color(.yellow))
                 HStack {
                   Text("nothing")
                 }.background(Color(.red))
                 HStack {
                   Text("three")
                   Image(systemName: "star")
                     .resizable()
                     .frame(width: 8, height: 8)
                 }.background(Color(.green))
                 HStack {
                   Text("three things")
                 }.background(Color(.red))
               }
             }