Окно UIWindow с уровнем оповещения находится в верхней части уровня строки состояния

У меня есть приложение, которое представляет модально View Controllers, у меня есть стандартный ViewController и UIAlertController в разных UIWindows, основной с обычным приоритетом UIWindowLevel и окно Alert с приоритетом Alert UIWindowLevel, потому что я хочу всегда иметь предупреждение поверх любого ViewController Я представляю модально на основном UIWindow (ссылка на AppDelegates). У меня также есть другое окно UIWindow с приоритетом строки состояния, для моментов, когда я хочу наверняка иметь другой ViewController поверх всего. Поэтому, когда я представляю UIWindow с приоритетом Alert UIWIndowLevel и после того, как я представляю другое окно со строкой состояния UIWIndowLevel, предупреждение в окне предупреждений отображается в верхней части окна строки состояния. Есть ли причина для этого?

Пример скриншота приложения, созданного мной для тестирования

1 ответ

Итак, я посмотрел на несколько открытых SO и увидел ответ: /questions/41286334/uiview-vyishe-uialertview/41286343#41286343

Я напечатал значения (UIWindowLevelNormal, UIWindowLevelAlert, UIWindowLevelStatusBar) (0.0, 2000.0, 1000.0). Но в документации Apple говорится, что:

let UIWindowLevelNormal: UIWindowLevel

Уровень по умолчанию. Используйте этот уровень для большинства вашего контента, в том числе для главного окна вашего приложения.

let UIWindowLevelAlert: UIWindowLevel

Уровень для просмотра предупреждений. Окна на этом уровне отображаются поверх окон на уровне UIWindowLevelNormal.

let UIWindowLevelStatusBar: UIWindowLevel

Уровень для окна состояния. Окна на этом уровне отображаются поверх окон на уровне UIWindowLevelAlert.

Я заполнил баг в Apple's Bug Reporter.

Моим решением было создать CGFloat со значением более 2000 и добавить его в windowLevel.

Другие вопросы по тегам