VStack低于预期的SwiftUI

VStack低于预期的SwiftUI,swiftui,vstack,zstack,Swiftui,Vstack,Zstack,尽管在预览版中,当我在模拟器或手机上运行应用程序时,VStack看起来很有希望,但它似乎低于预期。通过比较两幅图像,您可以看到在视图的前端有一个很大的间隙。我还添加了图层的图像,以帮助您了解问题。我显然不能理解 预演 在模拟器中 层 代码 我在欢迎页面中有一个NavigationView。我正在使用NavigationView来单击登录或注册按钮 struct WelcomeView: View { @State var isLogin : Bool = false @S

尽管在预览版中,当我在模拟器或手机上运行应用程序时,VStack看起来很有希望,但它似乎低于预期。通过比较两幅图像,您可以看到在视图的前端有一个很大的间隙。我还添加了图层的图像,以帮助您了解问题。我显然不能理解

预演

在模拟器中

代码

我在欢迎页面中有一个NavigationView。我正在使用NavigationView来单击登录或注册按钮

 struct WelcomeView: View {
    @State var isLogin : Bool = false
    @State var isRegister : Bool = false
    var body: some View {
        NavigationView {
            VStack {
            ZStack(alignment: .top) {
                Image("Welcomebg")
                    .resizable()
//                    .aspectRatio(contentMode: .fit)
                    .edgesIgnoringSafeArea(.all)
                Image("WelcomeImage")
                    .padding(.vertical, 30)
                HStack {
                    Text("Walker")
                    Image("logo")
                    Text("App")
                }
                .font(Font.custom("SFCompactDisplay-Bold", size: 16))
                .foregroundColor(.black)
            }
                Spacer()
                Text("Title")
                    .font(Font.custom("SFCompactDisplay-Bold", size: 30))
                  
                Text("Description")
                    .font(Font.custom("SFCompactDisplay", size: 16))
                    .foregroundColor(.gray)
                    .padding(.vertical, 20)
                Spacer()
                NavigationLink("", destination: LoginView(), isActive: $isLogin)
                Button(action: {
                    self.isLogin.toggle()
                }) {
                    Text("GIRIS YAP")
                        .foregroundColor(.white)
                        .padding(.vertical,25)
                        .padding(.horizontal,UIScreen.main.bounds.width / 3)
                        .font(Font.custom("SFCompactDisplay-Bold", size: 14))
                }
                .background(Color("ColorOnboarding"))
                .clipShape(Capsule())
                .padding(.top,20)
                HStack {
                    Text("HESABINIZ YOK MU?")
                        .foregroundColor(.gray)
                    NavigationLink("", destination: SignupView(), isActive: $isRegister)
                    Button(action: {
                        self.isRegister.toggle()
                    }) {
                        Text("UYE OL")
                            .foregroundColor(Color("ColorOnboarding"))
                            .padding(.vertical,25)
                    }
                }
                .font(Font.custom("SFCompactDisplay", size: 14))
            }
            .navigationBarHidden(true)
               
        }
    }
}

自动
模式(在本例中为
)下,空白区域看起来像一个空的导航栏标题

尝试在此视图中设置
.navigationBarTitleDisplayMode(.inline)
(这不会修改父视图):


视图层次结构中是否有任何
NavigationView
?此空白看起来像一个空的导航栏标题。尝试添加
.navigationBarTitleDisplayMode(.inline)
我在WelcomeView中有一个。但是有了这个导航视图,我就是NavigationLink(“”,destination:SignupView(),isActive:$isRegister),而且我在接下来的两个视图(LoginView和SignupView)上有一个自定义的后退按钮,如果没有WelcomeViewNope上的navigationView,我就无法使用它们,但sameI刚刚意识到,当我点击另一个选项卡,然后点击步骤选项卡时,它会显示我想要的视图。第一场演出的价格就低了@pawello2222@MertKöksal您的示例是不可复制的-这是我可以用您当前的代码给您的最佳答案。
 struct WelcomeView: View {
    @State var isLogin : Bool = false
    @State var isRegister : Bool = false
    var body: some View {
        NavigationView {
            VStack {
            ZStack(alignment: .top) {
                Image("Welcomebg")
                    .resizable()
//                    .aspectRatio(contentMode: .fit)
                    .edgesIgnoringSafeArea(.all)
                Image("WelcomeImage")
                    .padding(.vertical, 30)
                HStack {
                    Text("Walker")
                    Image("logo")
                    Text("App")
                }
                .font(Font.custom("SFCompactDisplay-Bold", size: 16))
                .foregroundColor(.black)
            }
                Spacer()
                Text("Title")
                    .font(Font.custom("SFCompactDisplay-Bold", size: 30))
                  
                Text("Description")
                    .font(Font.custom("SFCompactDisplay", size: 16))
                    .foregroundColor(.gray)
                    .padding(.vertical, 20)
                Spacer()
                NavigationLink("", destination: LoginView(), isActive: $isLogin)
                Button(action: {
                    self.isLogin.toggle()
                }) {
                    Text("GIRIS YAP")
                        .foregroundColor(.white)
                        .padding(.vertical,25)
                        .padding(.horizontal,UIScreen.main.bounds.width / 3)
                        .font(Font.custom("SFCompactDisplay-Bold", size: 14))
                }
                .background(Color("ColorOnboarding"))
                .clipShape(Capsule())
                .padding(.top,20)
                HStack {
                    Text("HESABINIZ YOK MU?")
                        .foregroundColor(.gray)
                    NavigationLink("", destination: SignupView(), isActive: $isRegister)
                    Button(action: {
                        self.isRegister.toggle()
                    }) {
                        Text("UYE OL")
                            .foregroundColor(Color("ColorOnboarding"))
                            .padding(.vertical,25)
                    }
                }
                .font(Font.custom("SFCompactDisplay", size: 14))
            }
            .navigationBarHidden(true)
               
        }
    }
}
var body: some View {
    ZStack(alignment: .leading) {
        // ...
    }
    .navigationBarTitleDisplayMode(.inline)
}