从应用程序打开系统暗模式-Swift

时间:2019-08-29 00:19:07

标签: ios swift xcode ios13

我已经使用Notifications在自己的应用中制作了自己的暗模式系统,并且有一个在暗模式打开和关闭之间切换的开关。

我的第一个问题:如何打开系统暗模式,如果通过将开关更新到iOS 13,整个手机也将变为暗模式。

我的第二个问题:如何检查是否启用了系统暗模式,以便无论何时启用iOS系统暗模式,都可以在启用暗模式的地方进行设置?

2 个答案:

答案 0 :(得分:1)

  • 第一个问题:目前无法实现
  • 第二个问题TamásSengel的Answer

您应检查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元素(例如UIViewControllerUITabBar)将自动适应新的用户界面样式。

答案 1 :(得分:1)

  if #available(iOS 13.0, *) {
            overrideUserInterfaceStyle = .light // or .dark 
        } else {
            // Fallback on earlier versions
        }

使用这种方法,您将获得亮模式和暗模式,将此代码放入开关,您的视图将根据暗和亮外观而变化。