它用于网络视图,我希望导航栏位于顶部,但我希望它非常小。但无论我放什么值都不起作用:(
例如,使用此代码,我将导航栏中的文本显示为红色
let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.red]
navigationController?.navigationBar.titleTextAttributes = textAttributes
但是尝试改变高度,比如说 8、80 甚至 800 是行不通的:(
navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 80)
有更好的方法吗?
其实iOS 11之后苹果就不允许我们自定义导航栏的高度了。您可以使用自定义导航栏来做到这一点
// Before iOS 11
class MyNavigationBar: UINavigationBar {
override func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width: UIScreen.main.bounds.width, height: 80)
}
}
或创建自定义导航控制器
class MyNavigationController: UINavigationController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
navigationBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 80)
}
}
社区错误报告
奖金
在开发者论坛上查看 gianfilippoci 的 answer