我正在尝试在某个点增加导航控制器的导航栏。对于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,它的工作正常,其他视图在导航下
答案 0 :(得分:0)
导航栏具有由导航控制器控制的固定高度。我们的想法是坚持下去,而不是试图改变它。
“大型游戏”方法仅适用于iOS 11,因为大型游戏是iOS 11的创新。