iOS UIAlertController黑暗主题

时间:2016-08-23 21:19:45

标签: ios themes uialertcontroller

我正在使用黑暗主题的iOS应用,我想使用UIAlertController。但是,白色警报看起来不合适。即使在黑暗的主题应用程序中使用黑暗的主题UIAlertController(当我说黑暗的主题警报,我所说的全部意思是将白色背景切换为深灰色,文本变为白色时)也会违反人机界面指南包括按钮)。

假设它不符合指导方针,我将如何实现这一目标?我似乎找不到允许这个的UIAlertController主题。

2 个答案:

答案 0 :(得分:7)

在iOS 13上,Apple提供了黑暗模式。但是,如果您的App主题与设备主题不匹配,则可以设置视图控制器的主题。

例如,“我的设备外观为暗模式”,而我的应用始终处于亮模式。但是使用UIAlertController的弹出窗口遵循“设备主题”,“黑暗”主题,并且在我的白色屏幕上出现了一个黑色弹出窗口。

解决方案1:内联解决方案

在创建UIAlertController时,我可以设置其主题

alert.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

解决方案2:支持整个应用

在您的AppDelegate中,设置窗口主题

self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

这将导致所有弹出窗口使用浅色主题。

注意:如果您设置UIAlertView的overrideUserInterfaceStyle属性,它将不使用暗/亮主题。 另外,不要忘记在设置属性之前添加if #available(iOS 13.0, *)检查,因为它仅在iOS 13+中可用

答案 1 :(得分:0)

嗯,自定义UIAlertView / UIAlertController是不可能的,但CocoaControls上有很多自定义的Alert实现,只需看一下即可。这更像是一个哲学问题;我想这并没有真正违反任何事情。