我已经使用Notifications在我的应用程序上制作了自己的暗模式系统,并且我有一个开关,它在暗模式开和关之间改变。
我的第一个问题是:如何打开系统暗模式,如果通过打开开关将整个手机升级为iOS 13,那么整个手机也会变成暗模式。
我的第二个问题:如何检查是否启用了系统暗模式,以便无论何时启用iOS系统暗模式,我都可以在启用暗模式的地方启用暗模式?
发布于 2019-08-29 07:20:19
您应该检查UITraitCollection的UITraitCollection变量,与tvOS和macOS上的变量相同。
switch traitCollection.userInterfaceStyle {
case .light: //light mode
case .dark: //dark mode
case .unspecified: //the user interface style is not specified
}您应该使用traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?)函数UIView/UIViewController来检测接口环境中的更改(包括用户界面样式的更改)。
当iOS接口环境发生变化时,系统将调用此方法。根据应用程序的需要,在视图控制器和视图中实现此方法,以响应此类更改。例如,当iPhone从纵向旋转到横向时,您可以调整视图控制器子视图的布局。此方法的默认实现为空。
系统默认UI元素(如UITabBar或UISearchBar)自动适应新的用户界面样式。
发布于 2020-03-25 09:00:40
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light // or .dark
} else {
// Fallback on earlier versions
}使用此方法,您将获得光模式和暗模式,将此代码放入开关,您的视图将根据黑暗和光的外观变化。
https://stackoverflow.com/questions/57701467
复制相似问题