iOS 13でダークモードをオプトアウトすることは可能ですか? 質問する

iOS 13でダークモードをオプトアウトすることは可能ですか? 質問する

私のアプリの大部分は、ネイティブ実装ではまだ利用できない機能を提供するための Web ビューで構成されています。Web チームは、Web サイトにダーク テーマを実装する予定はありません。そのため、私のアプリは、iOS 13 のダーク モード サポートと半分ずつの見た目になります。

ウェブサイトのテーマに合わせてアプリが常にライトモードを表示するように、ダークモードのサポートをオプトアウトすることは可能ですか?

ベストアンサー1

まず、こちらはアップルの参入ダークモードのオプトアウトに関する内容。このリンクの内容は、Xcode 11 および iOS 13 向けに書かれています

info.plist ファイル経由のアプリ全体 (Xcode 12)

info.plist ファイルで次のキーを使用します。

UIUserInterfaceStyle

そして、 の値を割り当てますLight

割り当てXML UIUserInterfaceStyle:

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

UIUserInterfaceStyle に関する Apple ドキュメント


ビルド設定の info.plist 経由のアプリ全体 (Xcode 13)

(2024年からは単に「外観」というラベルが付けられます。XML自体はまったく変更されていません。)

ここに画像の説明を入力してください

古い Xcode:

ここに画像の説明を入力してください


ウィンドウプロパティ経由のアプリウィンドウ全体

overrideUserInterfaceStyleアプリの変数に対して設定できますwindow。これは、ウィンドウ内に表示されるすべてのビューに適用されます。これは iOS 13 で利用可能になったため、以前のバージョンをサポートするアプリの場合は、可用性チェックを含める必要があります。

プロジェクトの作成方法に応じて、これはAppDelegateまたはSceneDelegateファイル内にある場合があります。

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

個別のUIViewControllerまたはUIView

s または's変数overrideUserInterfaceStyleに対して設定できます。これは iOS 13 で利用可能になったため、以前のバージョンをサポートするアプリの場合は可用性チェックを含める必要があります。UIViewControllerUIViewoverrideUserInterfaceStyle

迅速

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、ビューとその子は定義されたモードを採用します。

overrideUserInterfaceStyle に関する Apple ドキュメント


SwiftUI View による個別のビュー

preferredColorSchemeまたは にlight設定できますdark。指定された値によって、プレゼンテーションの配色が設定されます。

import SwiftUI

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

PreferredColorScheme に関する Apple ドキュメント


この回答をフィードバックによって改善してくれた@Aron Nelson@Raimundas Sakalauskas@NSLeaderおよび@rmaddyに感謝します。

おすすめ記事