#swift #uinavigationbar #uitabbar #safearealayoutguide #keywindow
#swift #панель навигации uinavigationbar #uitabbar #safearealayoutguide #keywindow
Вопрос:
Я пытаюсь отобразить всплывающее окно сверху и снизу моего контроллера представления. Однако руководство «Макет безопасной области» не включает ни панель навигации, ни панель вкладок внизу. Строка состояния включена. Я хочу показать всплывающее окно под моей панелью навигации.
Вот мой код:
guard let rootView = UIApplication.shared.windows.filter({$0.isKeyWindow}).first else {return}
let toastView = ToastView(title: title, message: message, type: type)
toastView.translatesAutoresizingMaskIntoConstraints = false
rootView.addSubview(toastView)
NSLayoutConstraint.activate([
toastView.centerXAnchor.constraint(equalTo: rootView.centerXAnchor),
toastView.leadingAnchor.constraint(greaterThanOrEqualTo: rootView.leadingAnchor, constant: 20),
toastView.topAnchor.constraint(equalTo: rootView.safeAreaLayoutGuide.topAnchor, constant: 0)
])
Комментарии:
1. Окно не является местом, где наложена безопасная область из контроллера навигации или контроллера панели вкладок. Окно находится над этими контроллерами в иерархии. Они налагают безопасную область вниз по иерархии.
2. Поэтому вместо использования окна используйте представление контроллера корневого представления окна и посмотрите, работает ли это лучше.