繁体   English   中英

SwiftUI NavigationView + tabView 显示导航标题略微偏离屏幕

[英]SwiftUI NavigationView + tabView shows navigation title slightly off the screen

我在 TabView 中有三个视图,每个视图都有一个 naviagtionTitle。 然而,当第一个视图出现时,navigationTitle 几乎离开了屏幕。 只有当我单击另一个页面然后返回到原始页面时,navigationTitle 才会出现在正确的位置。 可能是什么问题呢?

struct OnboardingView : View {
    
    @Binding var shouldShowOnboarding: Bool
    
    
    var body : some View {
        TabView {
            PageView(imageName: "Onboarding",
                     title: "Zone Out of This World",
                     showsDismissButton: false,
                     shouldShowOnboarding : $shouldShowOnboarding)
            PageView(imageName: "Onboarding",
                     title: "Improve Your Focus",
                     showsDismissButton: false,
                     shouldShowOnboarding : $shouldShowOnboarding)
            PageView(imageName: "Onboarding",
                     title: "Meditate to Relax",
                     showsDismissButton: true,
                     shouldShowOnboarding : $shouldShowOnboarding)
            
        }
        .tabViewStyle(PageTabViewStyle())
        .edgesIgnoringSafeArea(.all)
    }
}



struct PageView : View {
    
    let imageName: String
    let title: String
    let showsDismissButton : Bool
    @Binding var shouldShowOnboarding: Bool
    
    
    
    var body: some View {
        
        NavigationView {
            ZStack {
                Image(imageName)
                    .ignoresSafeArea()
                
                
                if showsDismissButton {
                    Button(action: {
                        shouldShowOnboarding.toggle()


                    }, label: {
                        Text("Get Started")
                            .frame(width: 352, height: 57)
                            .background(Color(#colorLiteral(red: 0.8470588326454163, green: 0.37254902720451355, blue: 0.27450981736183167, alpha: 1)))
                            .foregroundColor(Color.white)
                            .cornerRadius(30)
                            .padding(.top, 600)
                    })
                }
            }
            .navigationTitle(title)
          
        }
        .navigationViewStyle(.stack)
    }
}

我已经包括了截图。

放置错误: 在此处输入图像描述

正确放置: 在此处输入图像描述

.edgesIgnoringSafeArea(.all)似乎导致了初始转变。 我不确定为什么它会在您转移视图后自行纠正,但根据当前代码,我不明白您为什么想要拥有.edgesIgnoringSafeArea所以我认为只需将其注释掉以便拥有第二种预期风格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM