VStack中大文本和TextField之间的SwiftUI神秘间距

Posted

技术标签:

【中文标题】VStack中大文本和TextField之间的SwiftUI神秘间距【英文标题】:SwiftUI mysterious spacing between large Text and TextField in VStack 【发布时间】:2020-06-15 05:54:05 【问题描述】:

我无法弄清楚为什么我的文字下方有一些间距。

struct testView: View 

    @State private var notes = ""
    var body: some View 
        VStack 
            Text("Larg Text").font(.system(size: 70))
            .background(Color.red)

            TextField("Add a note", text: $notes)
            .background(Color.red)

            Spacer()
        
        .background(Color.yellow)
    

出于某种原因,Text 和 TextField 之间有一个神秘的空间。如果我这样做,这个空间似乎会减少

减小字体大小 不要指定字体大小 不要在文本视图之后使用 TextField 不要在 TextField 之前使用 Text 视图

换句话说,这种与字体大小相关的间距似乎只发生在 Text 和 TextField 之间。我完全糊涂了。我想摆脱这个空间。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

这是默认的自动间距。解决办法是明确指定

VStack(spacing: 0)      // << here !!
    Text("Larg Text").font(.system(size: 70))
    .background(Color.red)

    TextField("Add a note", text: $notes)
    .background(Color.red)

    Spacer()

【讨论】:

以上是关于VStack中大文本和TextField之间的SwiftUI神秘间距的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftUI 启动 TextField 时出现 VStack 错误

ForEach 通过多个 TextField 来验证 SwiftUI 中是不是为空

PHP中大括号之间的匹配文本

Swift UI VStack 对齐。按下时使文本字段与键盘一起出现

如何使用Swiftui创建用户表单

SwiftUI:在带有 Spacers 的 VStack 中平均分配多个 VStack