Я пытаюсь увеличить панель навигации контроллера навигации в определенной точке.для 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 он работает просто отлично, для других вид отображается под навигацией
Это то, что происходит, когда это не iOS11