添加TabView会使导航栏不覆盖SwiftUI的安全区域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加TabView会使导航栏不覆盖SwiftUI的安全区域相关的知识,希望对你有一定的参考价值。

[在我的SwiftUI ios应用中添加TabView时,导航栏将停止覆盖该缺口

我已经尝试为TabView实现创建另一个文件(修改SceneDeletage等)

这里是一个没有TabView的简单代码,它使导航栏覆盖了安全区域(也称为缺口)

import SwiftUI

struct ContentView: View 
    var body: some View 

        NavigationView
            ScrollView
                HStack
                    VStack
                        ForEach((1...10), id: \.self)_ in
                            Text("Hello")
                            .padding(.leading, 20)
                        
                    
                    Spacer()
                    //.padding(.leading, 20)
                
            
        .navigationBarTitle("Title Covers Safe Area")
        

    

struct ContentView_Previews: PreviewProvider 
    static var previews: some View 
        ContentView()
    

这里是带有TabView的代码,它使导航栏不会掩盖安全区域

import SwiftUI

struct ContentView: View 
    var body: some View 

        TabView 
            NavigationView
                ScrollView
                    HStack
                        VStack
                            ForEach((1...10), id: \.self)_ in
                                Text("Hello")
                            
                        
                        Spacer()
                    
                    .padding(.leading, 20)
                
                .navigationBarTitle("Doesn't Cover Safe Area")
            
                .tabItem 
                    Image(systemName: "1.circle")
                    Text("First")
                .tag(0)
            HStack
                Spacer()
                VStack

                    Spacer()
                    Text("Second View")
                        .font(.system(size: 40))
                

            

                .tabItem 
                    Image(systemName: "2.circle")
                    Text("Second")
                .tag(1)
        

    



struct ContentView_Previews: PreviewProvider 
    static var previews: some View 
        ContentView()
    


答案

您可以使用方法edgesIgnoringSafeArea(_:)

TabView 
  ...

.edgesIgnoringSafeArea(.top)

以上是关于添加TabView会使导航栏不覆盖SwiftUI的安全区域的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 如何将工具栏添加到 NavigationView 内的 TabView 选项卡?

ios 13 SwiftUI向后导航时如何避免导航视图内的TabView应用崩溃

SwiftUI 将覆盖添加到整个屏幕

SwiftUI实现不同TabView标签页中任意导航层级视图之间自动相互跳转那些事儿

SwiftUI实现不同TabView标签页中任意导航层级视图之间自动相互跳转那些事儿

SwiftUI:将项目动态添加到 TabView [重复]