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, просто посмотрите. Это скорее философский вопрос; Я думаю, это ничего не нарушает.