XvK*_*tvX 5 themes ios uialertcontroller
我正在开发一个带有深色主题的 iOS 应用程序,我想使用UIAlertController
. 但是,白色警报看起来不合适。即使在黑暗主题的应用程序上使用黑暗主题是否违反人机界面指南UIAlertController
(当我说黑暗主题警报时,我的意思是将白色背景切换为深灰色,将文本切换为白色,这也包括按钮)。
假设它不违反指导方针,我将如何实现这一目标?我似乎找不到UIAlertController
允许这样做的主题。
小智 11
在 iOS 13 中,Apple 提供了深色模式。但是如果您的 App 主题与设备主题不匹配,您可以设置视图控制器的主题。
例如,我的设备外观是深色模式,而我的应用程序始终处于浅色模式。但是使用 UIAlertController 的弹出窗口遵循设备主题、深色主题,并且我的白屏上的黑色弹出窗口不匹配。
解决方案#1:内联解决方案
在创建 UIAlertController 时,我可以设置它的主题
alert.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
Run Code Online (Sandbox Code Playgroud)
解决方案#2:支持整个应用程序
在您的 AppDelegate 中,设置窗口的主题
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
Run Code Online (Sandbox Code Playgroud)
这将导致所有弹出窗口使用浅色主题。
注意:如果您设置其 overrideUserInterfaceStyle 属性,则 UIAlertView 将不会使用深色/浅色主题。另外,不要忘记if #available(iOS 13.0, *)
在设置属性之前添加检查,因为它仅在 iOS 13+ 中可用
嗯,自定义UIAlertView
/UIAlertController
是不可能的,但是 CocoaControls 上有很多自定义警报实现,只需看一下那里即可。这更像是一个哲学问题;我想这并没有真正违反任何规定。