显然,更改NavigationBar的高度在iOS 11 中面临着一种新方法。在以前的iOS版本中,可以通过 隐藏默认navigationBar并添加带有自定义框架的新控件来更改navigationBar的高度:
self.navigationController?.setNavigationBarHidden(true, animated: false) let customNavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 64)) self.view.addSubview(customNavigationBar)
但似乎它无法在iOS 11 xCode beta中运行。无论新高度是多少,它始终保持在44。
有谁知道如何解决这个问题?
您的代码运行良好,没有错。如果更改 背景色,则会customNavigationBar看到 导航栏具有所需的高度。但是,似乎 Xcode 9 的问题在于隐藏默认的导航栏。
如您在Xcode 9图像中所见,您具有自定义导航栏,但 默认导航栏没有隐藏。可能是Xcode 9中的一个错误,我也没有设法 通过Storyboard隐藏它。
这似乎是Xcode 9中的错误,错误报告已提交给Apple。