我已经使用Notifications
在自己的应用中制作了自己的暗模式系统,并且有一个在暗模式打开和关闭之间切换的开关。
我的第一个问题:如何打开系统暗模式,如果通过将开关更新到iOS 13,整个手机也将变为暗模式。
我的第二个问题:如何检查是否启用了系统暗模式,以便无论何时启用iOS系统暗模式,都可以在启用暗模式的地方进行设置?
答案 0 :(得分:1)
您应检查userInterfaceStyle
的{{1}}变量,与在tvOS和macOS上相同。
UITraitCollection
您应该使用switch traitCollection.userInterfaceStyle {
case .light: //light mode
case .dark: //dark mode
case .unspecified: //the user interface style is not specified
}
/ UIView
的{{3}}功能来检测界面环境的变化(包括用户界面样式的变化)。
来自traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?)
:
当iOS界面环境更改时,系统调用此方法。根据您的应用需求,在视图控制器和视图中实现此方法,以响应此类更改。例如,当iPhone从纵向旋转为横向时,您可以调整视图控制器的子视图的布局。此方法的默认实现为空。
系统默认的UI元素(例如UIViewController
或UITabBar
)将自动适应新的用户界面样式。
答案 1 :(得分:1)
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light // or .dark
} else {
// Fallback on earlier versions
}
使用这种方法,您将获得亮模式和暗模式,将此代码放入开关,您的视图将根据暗和亮外观而变化。