我正在使用黑暗主题的iOS应用,我想使用UIAlertController
。但是,白色警报看起来不合适。即使在黑暗的主题应用程序中使用黑暗的主题UIAlertController
(当我说黑暗的主题警报,我所说的全部意思是将白色背景切换为深灰色,文本变为白色时)也会违反人机界面指南包括按钮)。
假设它不符合指导方针,我将如何实现这一目标?我似乎找不到允许这个的UIAlertController
主题。
答案 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实现,只需看一下即可。这更像是一个哲学问题;我想这并没有真正违反任何事情。