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

有没有可能 Select 不支持黑暗模式,让我们的应用程序始终显示灯光模式,以匹配网站主题?

推荐答案

首先,这里有Apple's entry个与 Select 暗模式有关的选项.

整个应用程序通过info.plist文件(Xcode 12)

在info.plist文件中使用以下密钥:

UIUserInterfaceStyle

并为其赋值Light.

UIUserInterfaceStyle个任务的XML:

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

Apple documentation for UIUserInterfaceStyle


整个应用程序通过信息.plist内置设置(Xcode 13)

enter image description here


通过窗口属性查看整个应用程序窗口

你可以根据应用程序的window变量设置overrideUserInterfaceStyle.这将应用于窗口中显示的所有视图.这在iOS 13中可用,因此对于支持以前版本的应用程序,必须包含可用性判断.

根据项目的创建方式,这可能在AppDelegateSceneDelegate文件中.

if #available(iOS 13.0, *) {
    window?.overrideUserInterfaceStyle = .light
}

单个UIViewController或UIView

您可以针对UIViewControllerUIViewoverrideUserInterfaceStyle变量设置overrideUserInterfaceStyle.这在iOS13中已可用,因此对于支持以前版本的应用程序,您必须包括可用性判断.

Swift

override func viewDidLoad() {
    super.viewDidLoad()
    // overrideUserInterfaceStyle is available with iOS 13
    if #available(iOS 13.0, *) {
        // Always adopt a light interface style.
        overrideUserInterfaceStyle = .light
    }
}

为了那些在Objective-C中可怜的灵魂

if (@available(iOS 13.0, *)) {
        self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}

当针对UIViewController进行设置时,视图控制器及其子项将采用定义的模式.

当设置为UIView时,视图及其子视图将采用定义的模式.

Apple documentation for overrideUserInterfaceStyle


Individual views via Swift UI View

可以将preferredColorScheme设置为lightdark.提供的值将设置演示文稿的 colored颜色 方案.

import Swift UI

struct ContentView: View {
    var body: some View {
        Text("Light Only")
            .preferredColorScheme(.light)
    }
}

Apple documentation for preferredColorScheme


感谢@Aron Nelson@Raimundas Sakalauskas@NSLeader@rmaddy通过他们的反馈改进了这个答案.

Ios相关问答推荐

从后台线程调用DispatchObject的方法安全吗?

带有RadStudio 11.3/12的Mac Mini M2(Sonoma 14.2.1)上的PAServer-测试连接按钮有效,但部署不起作用

带菜单的选取器不适用于Int32,但适用于Int

发生错误.请稍后重试.在 App Store 连接中

当虚拟对象附加到其网格时,如何刷新创建 ARView 的 SwiftUI UIViewRepresentable?

如何解决错误 HE0004:无法在 Visual Studio 2022 中加载框架ContentDeliveryServices

如何在 SwiftUI 视图中显示协议视图?

DllImport with .a file for iOS in MAUI

SwiftUI 中的偏移量和按钮有问题吗?

带有属性包装器的不可用属性

有哪些可靠的机制可以防止 CoreData CloudKit 中的数据重复?

向左或向右移动时如何水平翻转sprite?

Flutter 错误:CocoaPods not installed or not in valid state.

iOS:使用 UIView 的 'drawRect:' 与其层的委托 'drawLayer:inContext:'

interfaceOrientation在 iOS 8 中已弃用,如何更改此方法 Objective C

将 iPhone xib 转换为 iPad xib?

在 Xcode 4 中将静态库链接到 iOS 项目

如何在键盘上方添加工具栏?

文件是为存档而构建的,它不是被链接的体系 struct (i386)

iOS 中的 Google Analytics SDK 3.0 _sqlite3 链接器错误