iOSアプリを開発しているときに、ダークモードオプションを使用してシミュレーターでテストする必要があるので、アプリのUIをより明確にすることができます。しかし、設定に移動すると、実際のデバイスとして表示されるダークモードのオプションが表示されません。
iOSアプリを開発しているときに、ダークモードオプションを使用してシミュレーターでテストする必要があるので、アプリのUIをより明確にすることができます。しかし、設定に移動すると、実際のデバイスとして表示されるダークモードのオプションが表示されません。
回答:
で[設定]、下にスクロール開発して、暗い外観 ...
更新
上記に加えて、以下の多くのすばらしい答えに示されているように、シミュレーターで暗い外観を有効にする他の多くの方法があります。
•環境オーバーライドをXcodeから変更(@AshCameron)
• ⇧⌘Aシミュレータメニューからの外観の切り替え(@ Shredder2794)
• xcrun simctl ui booted appearance …
(@ blackjacx、@ tadija)を使用してコマンドラインから更新する
•プログラムによる使用overrideUserInterfaceStyle = .dark
(@thisIsTheFoxe)
• info.plist(@DhavalGevariya)で指定UIUserInterfaceStyle
します
•Curtis HerbertのSimGenieを使用してください… https: //simgenie.app
Appleは、このトピックに役立つものを含む強力なXcodeアップデートをリリースしました。外観をシミュレーターで直接選択できるようになりました。Features > Toggle Appearance
または⇧+⌘+ Aを選択するだけです。たとえば、コマンドラインでの自動スクリーンショットテストの場合、自動外観の切り替えが重要になる場合があります。Xcode 11.4を使用すると、スクリプトは次のように簡単になります。
device_ids=("C741F3CD-FDAC-49EA-A4DB-7F797B97291E" "428183B6-3EB8-4D36-9938-9D07C141BF49")
# The value to use is now just 'dark' or 'light'
appearance=dark
for device in "${device_ids[@]}"; do
xcrun simctl boot $device
xcrun simctl ui $device appearance $appearance
done
シミュレーターを殺したり、再設定したりする必要はありません。また、plistツールをいじる必要もありません。使用するランタイムで使用可能なデバイスIDを使用する必要があることに注意してください。を使用してそれらを見つけますxcrun simctl list
。
私の完全なスクリプトも参照してください: https //github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh
コマンドラインを使用して、シミュレータをライトモードとダークモードの間で切り替える方法があります。デバイスIDの配列がある場合は、次の操作を実行できます。
device_ids=("C741F3CD-FDAC-49EA-A4DB-7F797B97291E" "428183B6-3EB8-4D36-9938-9D07C141BF49")
# Determine the plist value for the desired style: "dark" -> 2 / "light" -> 1
style=2
for device_id in "${device_ids[@]}"; do
plist_path="${HOME}/Library/Developer/CoreSimulator/Devices/${device_id}/data/Library/Preferences/com.apple.uikitservices.userInterfaceStyleMode.plist"
printf '\n%s' "Set style $style for device $device_id ($plist_path)"
killall "Simulator"
xcrun simctl shutdown booted
xcrun simctl erase $device_id
# Crate the plist since it might not be available after erase
[[ ! -f "$plist_path" ]] && /usr/libexec/PlistBuddy -c "save" $plist_path
# Set the style mode
plutil -replace UserInterfaceStyleMode -integer $style $plist_path
done
デバイスIDはマシンごとに異なるため、スクリプトでデバイス名を指定する場合は、次のbashコードを使用してIDを簡単に見つけることもできます。
device_names=("iPhone SE" "iPhone 8" "iPhone 11 Pro" "iPhone 11 Pro Max")
device_ids=()
for name in "${device_names[@]}"; do
id=$(xcrun simctl list --json | jq ".devices | .[] | .[] | select(.name == \"$name\") | .udid" | cut -d\" -f2)
device_ids+=("$id")
done
printf '%s\n' "${device_ids[@]}"
xcrun simctl ui
コマンドによって直接サポートされます。
または、プログラムで外観を切り替えることもできます(docs)。
override func viewDidLoad() {
super.viewDidLoad()
#if DEBUG
// change the appearance only while testing
overrideUserInterfaceStyle = .dark
#endif
}
Simulatorでダークモードを有効にする方法は2つあります。注:iOS 13シミュレーターを使用していることを確認してください。XD
解決策1: ビルド設定を変更する
解決策2: プログラムで
このコードブロックをViewControllerファイルに追加するだけです。
override func viewDidLoad() {
super.viewDidLoad()
#if DEBUG
// This changes appearance only for debug mode
overrideUserInterfaceStyle = .dark
#endif
}
詳細については、このアップルドキュメントを確認してください。