iOS UIAlertController Dark Theme

Я работаю над приложением для iOS с темной темой и хочу использовать UIAlertController, Тем не менее, белый сигнал тревоги выглядит неуместным. Будет ли противоречить Руководству по интерфейсу пользователя даже в приложениях с темной тематикой использовать темную тему? UIAlertController (когда я говорю темное оповещение, все, что я имею в виду, это переключение белого фона на темно-серый и текста на белый, это также включает кнопки).

Предполагая, что это не противоречит руководящим принципам, как бы я пошел к достижению этого? Я не могу найти тему для UIAlertController это позволило бы это.

1 ответ

В iOS 13 Apple предоставляет темный режим. Но если ваша тема приложения не совпадает с темой устройства, вы можете установить тему своего контроллера представления.

Например, мое устройство отображается в темном режиме, а мое приложение всегда в светлом режиме. Но всплывающие окна с использованием UIAlertController соответствуют теме устройства, темной теме, а черное всплывающее окно на моем белом экране не соответствует.

Решение #1: встроенное решение

При создании UIAlertController я могу установить его тему

alert.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

Решение №2: Поддержка всего приложения

В вашем AppDelegate установите тему для окна

self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

Это заставит все всплывающие окна использовать светлую тему.

Примечание. UIAlertView не будет использовать темную / светлую тему, если вы установите ее свойство overrideUserInterfaceStyle. Также не забудьте добавитьif #available(iOS 13.0, *) проверьте перед установкой свойства, так как это доступно только в iOS 13+

Ну и кастомизация UIAlertView/UIAlertController не возможно, но есть много пользовательских реализаций Alert в CocoaControls, просто посмотрите. Это скорее философский вопрос; Я думаю, это ничего не нарушает.

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