ios - 如何更改 iOS 11 中的导航栏高度?

标签 ios swift uinavigationbar ios11 xcode9

显然,更改 navigationBar 高度在 iOS 11 中面临着一种新方法。 在以前的 iOS 版本中,可以通过隐藏默认导航栏并添加带有自定义框架的新导航栏来更改导航栏高度:

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。

这是我在 xCode 9 中得到的:

enter image description here

有谁知道如何解决这个问题吗?

最佳答案

您的代码运行良好,没有任何问题。如果您更改 customNavigationBar 的背景颜色,您会看到您将获得具有所需高度的导航栏。但隐藏默认导航栏似乎是 Xcode 9 的一个问题。

您的代码:

Xcode 9 enter image description here

Xcode 8 enter image description here

如您在 Xcode 9 图像中所见,您拥有自定义导航栏,但默认导航栏并未隐藏。可能是 Xcode 9 中的一个错误,我也没有设法通过 Storyboard 隐藏它。

这似乎是 Xcode 9 中的错误,错误报告已提交给 Apple。

关于ios - 如何更改 iOS 11 中的导航栏高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46138245/

相关文章:

ios - UINavigationBar 的自定义高度或 UINavigationBar 的替代品

ios - 是否可以获得导航栏当前的 "barTintColor"?

ios - 自定义 UIView 的标签不显示

ios - UIImageView 不显示图像

ios - UIView 动画曲线减速使用 UIViewAnimationOptionCurveEaseOut

快速过滤 Realm 上的项目

ios - 滑动到 popViewController 在 iOS 13 中不起作用

swift - 如何对 CAGradientLayer 颜色点进行动画处理?

iphone - 如何在iPhone的导航栏中使用UILabel添加UIImageView?

ios - 当用户多次加载 View 时,在 uitableview 上保存附件复选标记