我的应用程序的很大一部分由web视图组成,以提供尚未通过本机实现提供的功能。网络团队没有计划为网站实施黑暗主题。因此,我的应用程序在iOS 13上的暗模式支持看起来会有点一半一半。

是否可以选择退出暗模式支持,这样我们的应用程序总是显示光模式,以匹配网站主题?


当前回答

这里有一些小贴士和技巧,你可以在你的应用程序中使用来支持或绕过黑暗模式。

第一个技巧:重写ViewController样式

你可以覆盖UIViewController的界面风格

1: overrideuserinterfacstyle = .dark //暗模式 2: overrideuserinterfacstyle = .light //光照模式

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        overrideUserInterfaceStyle = .light    
    }
}

第二个技巧:在info.plist中添加一个键

您可以简单地添加一个新密钥

UIUserInterfaceStyle

在你的应用程序信息。plist,并将其值设置为Light或Dark。这将覆盖应用程序默认样式为您提供的值。 你不需要在每个viewController中添加overrideUserInterfaceStyle = .light这一行,只需在info中添加一行即可。就是这样。

其他回答

是的. .你可以在iOS项目中添加以下设置。

在信息。将uiuserinterfacstyle添加到Light中。

如果你的项目在IONIC..您可以在配置文件中添加以下设置

<platform name="ios">
  <edit-config file="*-Info.plist" mode="merge" target="UIUserInterfaceStyle">
  <string>Light</string>
 </edit-config>
</platform>

使用这些设置,设备暗模式不会影响你的应用程序。

只需简单地添加以下关键在您的信息。Plist文件:

<key>UIUserInterfaceStyle</key>
    <string>Light</string>

是的,你可以跳过添加以下代码在viewDidLoad:

if #available(iOS 13.0, *) {
        // Always adopt a light interface style.
        overrideUserInterfaceStyle = .light
    }

这里有一些小贴士和技巧,你可以在你的应用程序中使用来支持或绕过黑暗模式。

第一个技巧:重写ViewController样式

你可以覆盖UIViewController的界面风格

1: overrideuserinterfacstyle = .dark //暗模式 2: overrideuserinterfacstyle = .light //光照模式

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        overrideUserInterfaceStyle = .light    
    }
}

第二个技巧:在info.plist中添加一个键

您可以简单地添加一个新密钥

UIUserInterfaceStyle

在你的应用程序信息。plist,并将其值设置为Light或Dark。这将覆盖应用程序默认样式为您提供的值。 你不需要在每个viewController中添加overrideUserInterfaceStyle = .light这一行,只需在info中添加一行即可。就是这样。

最新更新,

如果你用的是Xcode 10。x,那么默认的UIUserInterfaceStyle是light对于iOS 13.x。当在iOS 13设备上运行时,它只能在灯光模式下工作。

不需要显式地在信息中添加UIUserInterfaceStyle键。plist文件,添加它将给出一个错误时,你验证你的应用程序,说:

无效的信息。plist关键。载荷/AppName.appInfo中的键'UIUserInterfaceStyle'。Plist文件无效。

只在Info中添加uiuserinterfacstyle键。plist文件时使用Xcode 11.x。