SwiftUI 导航视图在内容之前没有足够的空间

Posted

技术标签:

【中文标题】SwiftUI 导航视图在内容之前没有足够的空间【英文标题】:SwiftUI Navigation View doesn't have enough space before content 【发布时间】:2021-07-19 08:35:47 【问题描述】:

我有一个 SwiftUI 导航视图,里面的内容视图在导航栏和内容之间有非常小的空间。这是我的代码:

struct TestView: View 

var body: some View 
    ZStack(alignment: .top) 
        NavigationView 
            List 
                Section(header: Text("Section Header")) 
                    NavigationLink(
                        destination: CustomDeckView(),
                        label: 
                            Text("A link")
                                .foregroundColor(AppTheme.Colors.text)
                        )
                    .preferredColorScheme(.light)
                
            
            .listStyle(InsetGroupedListStyle())
            .navigationBarTitleDisplayMode(.inline)
        
        .navigationViewStyle(StackNavigationViewStyle())

        Text("Custom Font")
            .font(.custom("Pacifico-Regular", size: 27.5))
            .offset(y: -5)
    

这是应用预览中的样子:

【问题讨论】:

【参考方案1】:

试试这个:

Section(header: Text("Section Header").padding(.top, 44)) 
 ....

或者您可以将其添加到列表中。

  List 
    ....
  .padding(.top, 44)

【讨论】:

谢谢,@workingdog,但在节标题文本中添加填充顶部不起作用,当我向列表添加顶部填充时,它可以工作,但是,我最终得到白色背景颜色的间隙在导航栏和第一节标题之间:imgur.com/lf36ZPD 哈,我明白了,我使用的是 Xcode 13,目标是 ios15,并且 Section 标头填充在没有空格间隙的情况下起作用。可能不在旧版本的 ios 中。 嘿@workingdog,对不起,我编辑了错误的文件!向部分标题文本添加填充确实有效! :) 我忘了添加版本(Xcode 14),但非常感谢!

以上是关于SwiftUI 导航视图在内容之前没有足够的空间的主要内容,如果未能解决你的问题,请参考以下文章

FireBase 登录过程后导航到主屏幕(内容视图)。 (SwiftUI)

如何在没有导航回溯的情况下启动 SwiftUI 视图?

SwiftUI:在视图层次结构中自动来回导航

SwiftUI 和双导航栏

标签视图导航上的 SwiftUI 调用功能

SwiftUI 视图之间的导航