ios - 横向模式下的 UINavigationBar 高度未完全显示

标签 ios swift uinavigationbar

我使用了 UINavigationBar,当我切换到横向模式时,栏看起来像这样。

enter image description here

纵向模式

enter image description here

最佳答案

尝试这种方式,此代码用于 navigation bar 而不是 navigation controller 。可能是你没有设置Constraint或者互相冲突

   override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator){
        super.viewWillTransition(to: size, with: coordinator)


           var frame: CGRect = (self.navigationController?.navigationBar.frame)!

                coordinator.animate(alongsideTransition: { (UIViewControllerTransitionCoordinatorContext) -> Void in

                    let orient = UIApplication.shared.statusBarOrientation

                    switch orient {
                    case .portrait:

                        frame.size.height = 44
                        frame.size.width = self.view.frame.width
                    default:

                        frame.size.height = 32
                        frame.size.width = self.view.frame.width
                    }

                }, completion: { (UIViewControllerTransitionCoordinatorContext) -> Void in
                    print("rotation completed")
                    self.navigationController?.navigationBar.frame = frame
                })

    }

关于ios - 横向模式下的 UINavigationBar 高度未完全显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42862371/

相关文章:

iphone - UITableView 滚动 UINavigationBar

ios - uiviewcontroller dealloc时如何在 objective-c 中触发 block 事件

ios - iPhone 4 上的 UINavigationBar.barTintColor 问题

ios - 无法更改 iOS 11 中的导航栏项目高度

swift - 如何使用 spriteKit 在 swift 中在 Sprite 图像或纹理中切一个洞以显示其背后的内容

iOS Swift SSL 套接字自签名证书

swift - 我不了解 Swift Unicode 标量基础知识。我缺少什么

ios - Expo 应用程序因react-native-google-mobile-ads 崩溃 [app.json 中的 react-native-google-mobile-ads 键中未找到 ios_appd_id 键]

iphone - NSURLRequest http协议(protocol)版本

ios - “没有下标成员”错误(迁移到Swift 3)