Ios 从应用程序-Swift打开系统暗模式
我在我的应用程序上使用Ios 从应用程序-Swift打开系统暗模式,ios,swift,xcode,ios13,Ios,Swift,Xcode,Ios13,我在我的应用程序上使用通知制作了自己的暗模式系统,我有一个开关,可以在暗模式打开和关闭之间切换 我的第一个问题是:如何打开系统暗模式,如果通过翻转开关将整个手机更新为iOS 13,那么整个手机也会变成暗模式 我的第二个问题:如何检查系统暗模式是否已启用,以便在每次启用iOS系统暗模式时都能将其设置为启用我的暗模式? 第一个问题:目前不可能 第二个问题:的塔马斯·森格尔的 您应该检查UITraitCollection的userInterfaceStyle变量,与tvOS和macOS上的变量相同
通知制作了自己的暗模式系统,我有一个开关,可以在暗模式打开和关闭之间切换
我的第一个问题是:如何打开系统暗模式,如果通过翻转开关将整个手机更新为iOS 13,那么整个手机也会变成暗模式
我的第二个问题:如何检查系统暗模式是否已启用,以便在每次启用iOS系统暗模式时都能将其设置为启用我的暗模式?
- 第一个问题:目前不可能
- 第二个问题:的塔马斯·森格尔的
您应该检查UITraitCollection
的userInterfaceStyle
变量,与tvOS和macOS上的变量相同
switch traitCollection.userInterfaceStyle {
case .light: //light mode
case .dark: //dark mode
case .unspecified: //the user interface style is not specified
}
您应该使用UIView
/UIViewController
的功能来检测界面环境中的更改(包括用户界面样式的更改)
发件人:
当iOS接口环境更改时,系统调用此方法。根据应用程序的需要,在视图控制器和视图中实现此方法,以响应此类更改。例如,当iPhone从纵向旋转到横向时,可以调整视图控制器子视图的布局。此方法的默认实现为空
系统默认UI元素(如uitabar
或UISearchBar
)自动适应新的用户界面样式
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light // or .dark
} else {
// Fallback on earlier versions
}
使用此方法,您将获得亮模式和暗模式,将此代码放入开关,您的视图将根据暗模式和亮模式的外观进行更改 第一个问题-不可能。第二个问题-这并不能使整个手机达到指定的风格。我在问是否有办法让一个按钮让你的整个手机进入黑暗模式,就像你在设置/控制中心切换一样。答案是目前还没有办法。我正在开发macOS应用程序。您知道我如何在没有UIKit
的情况下访问UITraitCollection
?