【问题标题】:How to adjust spacing between HStack elements in swiftUI?如何在 swiftUI 中调整 HStack 元素之间的间距?
【发布时间】:2019-10-23 16:07:09
【问题描述】:

我添加了 spacer(minLength: 5) 但它需要 minlenght 我可以指定文本之间的间距。 我附上了一个截图供参考我想减少内部 hstack 之间的间距。

HStack {
Image("Rhea").resizable().cornerRadius(25).frame(width: 50.0, height: 50.0)
    VStack(alignment: .leading) {
        Text("How to enjoy your life without money").bold().font(.system(size: 20))
        HStack {
            Text("Lets create")
            Spacer(minLength: 5)
            Text("3K views")
            Spacer(minLength: 5)
            Text("3 hours ago")
        }
    }
}

【问题讨论】:

  • 等一下瑞亚得到了什么?我喜欢这个例子 xD
  • 顺便说一句,这不是故意的,问题是大约 2 年前发布的。
  • 这个例子非常适合这个角色,我很惊讶你在 2020 年 6 月前一年写这个例子

标签: ios swift swiftui hstack vstack


【解决方案1】:

spacing 属性添加到HStack 本身。对于例如间距10:

HStack {
    Image("Rhea").resizable().cornerRadius(25).frame(width: 50.0, height: 50.0)
    VStack(alignment: .leading) {
        Text("How to enjoy your life without money").bold().font(.system(size: 20))
        HStack(spacing: 10) {
            Text("Lets create")
            Text("3K views")
            Text("3 hours ago")
        }
    }
}

【讨论】:

    【解决方案2】:

    您可以通过在初始化程序中提供一个值来将spacing 添加到您的SwiftUI 堆栈中,如下所示:

    VStack

    VStack(spacing: 50) {
        Text("SwiftUI")
        Text("rocks")
    }
    

    HStack

    HStack(spacing: 50) {
        Text("SwiftUI")
        Text("rocks")
    }
    

    在你的情况下,你可以像下面这样使用。

    HStack {
    Image("Rhea").resizable().cornerRadius(25).frame(width: 50.0, height: 50.0)
        VStack(alignment: .leading) {
            Text("How to enjoy your life without money").bold().font(.system(size: 20))
            HStack(spacing: 10) {
                Text("Lets create")
                Text("3K views")
                Text("3 hours ago")
            }
        }
    }
    

    【讨论】: