Я создаю приложение для iOS, цель развертывания 12.1, swift 4.2. Приложение использует вид контейнера и имеет панель навигации в верхней части основных экранов, предпочтительно прямо под строкой состояния. В раскадровке на экране запуска я ограничил навигационную панель Bar.top безопасным.Area.Top. Это отлично работает. Но после того, как я установил containerViewController как rootViewController в AppDelegate, панель навигации, как я ограничил ее в Main.storyboard (Navigation Bar.top - Safe.Area.Top), появляется намного ниже, где она должна быть.
Единственный способ заставить панель навигации отображаться прямо под строкой состояния - это создать пользовательский фрейм для моего окна в AppDelegate с отрицательным значением y - и это определенно НЕ решение, с которым мне удобно .
Это, кажется, генерирует слишком низкое значение y:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.main.bounds)
let containerViewController = ContainerViewController()
window!.rootViewController = containerViewController
window!.makeKeyAndVisible()
return true
}
И это вопиющий хак, который приближает панель навигации к тому месту, где она должна быть:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
//window = UIWindow(frame: UIScreen.main.bounds)
let hackedFrame = CGRect(x: 0, y: -44, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
window = UIWindow(frame: hackedFrame)
let containerViewController = ContainerViewController()
window!.rootViewController = containerViewController
window!.makeKeyAndVisible()
//window!.windowLevel = UIWindow.Level.statusBar
return true
}
Снимки экрана:
![launchscreen, navbar correct](https://i.stack.imgur.com/TnRsv.png)
![main screen post didFinishLaunchingWithOptions, navbar too low](https://i.stack.imgur.com/zRTcC.png)
Я, наверное, здесь упускаю что-то действительно очевидное, но я был бы признателен за любую помощь, которую кто-либо может оказать.
Спасибо.