如何更改导航栏的高度

Posted

技术标签:

【中文标题】如何更改导航栏的高度【英文标题】:How to change the height of the naviagtionBar 【发布时间】:2020-05-13 08:29:59 【问题描述】:

在最新版本的xcode中,我在viewDidLoad中写了如下代码来改变NavigationBar的高度。

self.navigationController?.navigationBar.frame = CGRect(x:0, y:0, width:UIScreen.main.bounds.size.width, height:40)

但是,我无法更改 NavigationBar 的高度。

如果你能告诉我如何解决它,我将不胜感激。

【问题讨论】:

这能回答你的问题吗? How can I change height of Navigation Bar - Swift 3 如果我的回答解决了您的问题,请告诉我? 【参考方案1】:

我主要使用了两种方法

第一种方法

最好创建UINavigationController 的子类...并在其中添加此方法.. 将此类用作NavigationController

  class MyNavigationController: UINavigationController 

    override func viewDidLayoutSubviews() 
           super.viewDidLayoutSubviews()
           let height = CGFloat(72)
           navigationBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: height)
       


第二种解决方法

您可以像这样创建UINavigationBar 的子类

class MyNavigationBar: UINavigationBar 

    override func sizeThatFits(_ size: CGSize) -> CGSize 
        return CGSize(width: UIScreen.main.bounds.width, height: 75)
    


【讨论】:

谢谢!!第一种方法能够成功构建。但是,第二种方法不起作用。

以上是关于如何更改导航栏的高度的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 12.2 中更改导航栏高度?

swift 4中无法更改导航栏的高度

以编程方式快速更改导航栏的高度

常规高度导航栏的滚动边缘外观

如何获取Android手机底部导航栏的高度

更改 iOS Xamarin 表单上的导航栏高度?