Безопасно ли использовать UIApplication.shared, чтобы получить безопасную область или высоту домашнего индикатора.keyWindow?.safeAreaInsets ?

#ios #swift #uiview

#iOS #swift #uiview

Вопрос:

Обычно для обеспечения безопасности следует использовать UIViewController.view.safeAreaInsets в layoutSubviews() .
UIViewController.view.safeAreaInsets равен нулю в viewDidLoad().
Но вы можете получить безопасную область в viewDidLoad(), используя UIApplication.shared .keyWindow?.safeAreaInsets .

Я думаю, что использование UIViewController.view.safeAreaInsets в layoutSubviews() — это правильный способ получить безопасную область.
Итак, я думаю, что UIApplication.shared.keyWindow?.safeAreaInsets в viewDidLoad() может неожиданно вести себя в будущем обновлении iOS или на некоторых существующих устройствах.

Безопасно ли использовать UIApplication.shared.keyWindow?.safeAreaInsets в viewDidLoad()?
Если это безопасно или небезопасно, я хотел бы знать причину.
Мои макеты приложений отображаются в viewDidLoad().
Итак, я хочу получить безопасную область в viewDidLoad() с помощью UIApplication.shared.keyWindow, если это безопасно.

Ответ №1:

в iOS 11.0.1 iPhone6 используйте keywindow. safeAreaInsets равно нулю.Поэтому я думаю, что это недостаточно безопасно