1. ホーム
  2. ios

[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?

2022-03-22 01:32:50

質問

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

ダークモードへの対応をやめ、Webサイトのテーマに合わせて常にライトモードで表示することは可能でしょうか?

解決方法を教えてください。

まずはこちら Appleのエントリ ダークモードのオプトアウトに関するものです。 このリンク先のコンテンツは、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)


windowプロパティでアプリ全体のウィンドウを表示

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

プロジェクトがどのように作成されたかによって、これは AppDelegate または SceneDelegate ファイルを作成します。

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


個々のUIViewControllerまたはUIView

を設定することができます。 overrideUserInterfaceStyle に対して UIViewController または UIView 's overrideUserInterfaceStyle 変数を使用します。iOS 13から利用可能になったので、それ以前のバージョンに対応したアプリでは、利用可否のチェックを入れる必要があります。

<ブロッククオート

スウィフト

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ビューによる個別ビュー

を設定することができます。 preferredColorScheme のどちらかになります。 light または dark . 提供された値は、プレゼンテーションのための配色を設定します。

import SwiftUI

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

preferredColorSchemeに関するAppleの文書


クレジット アロン・ネルソン , ライムンダス・サカラウスカス , NSLeader アーマディ この回答は、彼らのフィードバックによって改善されました。