我试图了解如何更改导航栏的高度。每当我将一个插入我的应用程序时,它比Apple的股票应用程序(例如,消息和设置)中使用的所有导航栏都短。我希望它达到那个高度,因为当我尝试添加一个条形按钮时,它与状态栏冲突。我还读到,作为开发人员,你不应该改变导航栏的高度,所以我有点困惑。最后,我查看了这个Stack Overflow页面:How can I change height of Navigation Bar Swift 3。 我试图实现代码......
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let height: CGFloat = 50 //whatever height you want
let bounds = self.navigationController!.navigationBar.bounds
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)
}
...但是当我这样做时我的应用程序崩溃了。 我使用Xcode 8.2 beta和Swift 3。
答案 0 :(得分:0)
我认为你不能改变navigationBar的大小。 但这是我建议你怎么做的。
答案 1 :(得分:0)
添加独立的导航栏并使其与常规导航栏高度和旋转功能相匹配是可能的,也很简单。 Here is how to do it (link includes a video):
在Interface Builder中:
将UINavigationBar添加到视图中,位于“顶部布局指南”位置。
将前导空间的约束设置为容器边距,将容器余量的尾随空间设置为容器的顶部空间 - 取消选择“相对于边距”且常量值为0(零)。
< / LI>选择导航栏后,在Identity Inspector中添加一个名为barPosition
的密钥路径。为其指定Number
类型,值为3
。
这应该就是你所需要的。但是,如果您已完成这些步骤并且您的项目似乎不喜欢关键路径,请继续如下:
barPosition
密钥路径。UINavigationBarDelegate
。func position(for bar: UIBarPositioning) -> UIBarPosition
添加到视图控制器,并返回值UIBarPosition.topAttached
。