在开发iOS应用程序时,我需要在具有暗模式选项的模拟器中对其进行测试,以便我可以更清楚地了解应用程序UI。但是,当我转到“设置”时,我无法获得显示真实设备的黑暗模式选项。
答案 0 :(得分:54)
在设置中,向下滚动到开发人员,然后深色外观…
答案 1 :(得分:28)
答案 2 :(得分:20)
答案 3 :(得分:6)
或者,您也可以通过编程方式(docs)切换外观:
override func viewDidLoad() {
super.viewDidLoad()
#if DEBUG
// change the appearance only while testing
overrideUserInterfaceStyle = .dark
#endif
}
答案 4 :(得分:4)
有两种方法可以在Simulator中启用暗模式。 注意:请确保您使用的是iOS 13模拟器。 X-D
解决方案1: 更改构建设置
解决方案2: 以编程方式
只需将此代码块添加到ViewController文件中即可。
override func viewDidLoad() {
super.viewDidLoad()
#if DEBUG
// This changes appearance only for debug mode
overrideUserInterfaceStyle = .dark
#endif
}
选中此apple docs以获得更多详细信息。
答案 5 :(得分:2)
有一种使用命令行在明亮和黑暗模式之间切换模拟器的方法。如果您的阵列具有设备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[@]}"`
答案 6 :(得分:2)
从终端:
xcrun simctl ui booted appearance light
xcrun simctl ui booted appearance dark
答案 7 :(得分:0)
您也可以使用此行切换暗模式,只需将这些行放入info.plist文件中
<key>UIUserInterfaceStyle</key>
<string>Dark</string> //Light