【发布时间】:2018-05-25 01:14:20
【问题描述】:
我正在尝试在某个点增加导航控制器的导航栏。对于 iOS 11,我设法做到了该设置 navigationBar.prefersLargeTitles = true
但对于其他 iOS 版本,我是手动完成的
问题在于,当我尝试手动更改导航栏高度时,视图控制器的视图会位于导航栏的展开部分下方。
这就是我的诀窍:
extension UINavigationController {
func setupNavigationWithMenu(){
let bounds = self.navigationBar.bounds
let menuHeight: CGFloat = 50 //whatever height you want to add to the existing height
let segmentedMenu = SegmentedMenu(frame: CGRect(x: 0, y: bounds.height, width: bounds.width, height: menuHeight))
if #available(iOS 11.0, *) {
self.navigationBar.prefersLargeTitles = true
} else {
let bounds = self.navigationBar.bounds
self.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + menuHeight)
}
self.navigationBar.addSubview(segmentedMenu)
}
}
我在这里调用设置:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController!.setupNavigationWithMenu()
}
如何调整视图控制器的视图以在导航栏之后开始?
对于 iOS 11 它工作得很好,对于其他人来说,视图在导航下
【问题讨论】:
-
不...我还没有在 iPhone X 上测试过...虽然 iPhone X 至少会有 iOS 11
标签: ios uinavigationcontroller uinavigationbar