在SwiftUI中添加一个TabView会使导航栏不覆盖安全区域

9
在我的SwiftUI iOS应用程序中添加TabView时,导航栏停止覆盖缺口。
我尝试创建另一个文件来实现TabView(修改SceneDelegate等)。
以下是一个简单的没有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()
    }
}


两张图片展示了情况 https://imgur.com/a/ADh46Ek - Erdal
嘿,我也遇到了同样的问题,你找到解决方法了吗? - Karen Karapetyan
@KarenKarapetyan 是的,我做了。我更新了Xcode并逐行重写了栈,它在某种程度上起作用了。 - Erdal
嗨,今天我也注意到在更新xcode后这个问题已经修复了,SwiftUI越来越好了,谢谢Erdal的支持。 - Karen Karapetyan
1个回答

13

我会将此作为答案,但是这种方法涉及到其他与Xcode 11A420a横向方向有关的问题。 - Erdal
2
这对我不起作用,当我使用.top时什么也没有发生。我尝试使用.all,似乎可以工作,但这也会影响底部选项卡视图,我不知道这是SwiftUI中的一个错误还是我做错了什么。 - Divyanshu Negi
1
@DivyanshuNegi 如果您全局修改了NavigationBar的外观(例如UINavigationBar.appearance().backgroundColor = .blue),它将无法正常工作。 - Ishmeet
1
即使删除了全局外观更改,它仍然无法正常工作。 - iSpain17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接