Swiftui中的导航栏标题-iPhoneXR

时间:2020-02-19 15:39:21

标签: ios swiftui

导航栏标题在iPhone 7 plus设备上运行正常,但在iphoneXR中,导航栏标题部分隐藏。

SwiftUI in iPhoneXR

以下是用于显示此屏幕的代码。 LoginView和ResetView在单独的文件中定义

var body: some View {

    LoadingView(isShowing: .constant(self.isShowLoadingView)) {
        VStack
            {
                if(self.showLoginView)
                {
                    LoginView()
                }
                else if(self.showResetView)
                {
                    ResetView()
                }
                else
                {
                    NavigationView {
                        VStack(alignment: .leading)
                        {
                            Text(EMAIL).foregroundColor(Color.white)
                            TextField("", text: self.$emailid)
                                .foregroundColor(Color.black)
                                .padding(EdgeInsets(top: 0, leading: 0, bottom: 45, trailing: 0))
                                .textFieldStyle(RoundedBorderTextFieldStyle())

                            Text(PHONE_NUMBER).foregroundColor(Color.white)
                            TextField("", text: self.$phoneno)
                                .foregroundColor(Color.black)
                                .padding(EdgeInsets(top: 0, leading: 0, bottom: 45, trailing: 0))
                                .textFieldStyle(RoundedBorderTextFieldStyle())

                            Button(action: self.forgotPwdAction) {
                                HStack(alignment: .center) {
                                    Spacer()
                                    Text(OK_BTN).font(.headline).fontWeight(.bold).foregroundColor(Color.white).multilineTextAlignment(.center)
                                    Spacer()
                                }
                            }.padding().background(Color.green)

                            Spacer()
                        }.padding(40)
                            .background(Color.black)
                            .navigationBarTitle("Forgot Password")
                            .navigationBarItems(leading: self.btnBack)
                            .navigationBarHidden(false)
                    }
                }
        }
        .background(Color.black)
        .edgesIgnoringSafeArea(.all)
        .statusBar(hidden: true)
    }
}

2 个答案:

答案 0 :(得分:2)

不是因为您设置了.edgesIgnoringSafeArea(.all),所以内容正流入最安全的区域?我会尝试删除它。

答案 1 :(得分:0)

这是一个基于您的代码段的简化示例:

init

我在内部struct ContentView: View { @State var haha = "placeholder" var body: some View { VStack { NavigationView { VStack(alignment: .leading) { Text("EMAIL").foregroundColor(Color.white) TextField("", text: self.$haha) .foregroundColor(Color.black) .padding(EdgeInsets(top: 0, leading: 0, bottom: 45, trailing: 0)) .textFieldStyle(RoundedBorderTextFieldStyle()) TextField("", text: self.$haha) .foregroundColor(Color.black) .padding(EdgeInsets(top: 0, leading: 0, bottom: 45, trailing: 0)) .textFieldStyle(RoundedBorderTextFieldStyle()) Spacer() } .padding(40) .background(Color.black) .navigationBarTitle("Forgot Password") .navigationBarHidden(false) .edgesIgnoringSafeArea([.leading, .trailing, .bottom]) } } .background(Color.gray) .edgesIgnoringSafeArea(.all) .statusBar(hidden: true) } } 中添加了.edgesIgnoringSafeArea([.leading, .trailing, .bottom])修饰符。

在iPhone 11(也有缺口)上看起来像这样:

preview on iPhone 11