Як використовувати темний режим в тренажері iOS 13?


165

Поки я розробляю додаток для iOS, мені потрібно перевірити його в симуляторі з темним режимом, щоб я міг отримати більше ясностей щодо інтерфейсу програми. Але коли я переходжу до Налаштування, я не отримую варіант для темного режиму, як реальний показ пристрою.

Відповіді:


302

У Налаштуваннях прокрутіть униз до Розробника, а потім Темний зовнішній вигляд

введіть тут опис зображення


Оновлення

На додаток до вищесказаного, зараз існує багато інших способів включити темний вигляд у тренажері, як показано у багатьох чудових відповідях нижче.

• Змінити заміщення середовища на Xcode (@AshCameron)

• Змінити зовнішній вигляд Aз меню симулятора (@ Shredder2794)

• Оновлення з командного рядка за допомогою xcrun simctl ui booted appearance …(@blackjacx, @tadija)

• Програмно використовуючи overrideUserInterfaceStyle = .dark(@thisIsTheFoxe)

• Вкажіть UIUserInterfaceStyleу вашому info.plist (@DhavalGevariya)

• Використовуйте SimGenie від Кертіса Герберта…  https://simgenie.app


78

Ви можете перемикати режим інтерфейсу (тобто Світло / Темно), а також коригувати налаштування динамічного типу під час руху (коли тренажер працює) таким чином:

Темний режим з Xcode


Чудова відповідь. Також добре побачити всі інші речі щодо розміру та доступності, робить це набагато швидшим при розробці
Метт Флетчер

3
Приємно 👍 Я б ніколи не натискав на цю немарковану кнопку.
woz

3
це я повинен бути прийнятою відповіддю, я думаю, короткий і зручний, замість того, щоб переглядати декілька меню.
Heckscheibe

6
Підказка: якщо у вас на передньому плані Simulator, надіславши Xcode, ви можете командувати + натиснути на цю кнопку в Xcode (і на будь-яких перемикачах на цій панелі), щоб змінити налаштування, зберігаючи тренажер попереду! кредит: WWDC стан союзу iirc
Graystripe

13

Автоматизована зміна зовнішності 🦉

Xcode 11,4 🌟

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

Більше не потрібно вбивати або повторно налаштовувати тренажер, що є величезною виграшю від продуктивності. Крім того, більше ніколи не обманюючись будь-якими інструментами плистів. майте на увазі, що вам потрібно використовувати ідентифікатори пристрою, які доступні під час використання. Знайдіть їх, використовуючи xcrun simctl list.

Дивіться також мій повний сценарій: https://github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh

Xcode 11.3

Існує спосіб за допомогою командного рядка переключити тренажер між світлим і темним режимом. Якщо у вас є масив з ідентифікаторами пристрою, ви можете зробити наступне:

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

Якщо ви хочете вказати назви пристроїв у своєму скрипті - оскільки ідентифікатори пристроїв різні на різних машинах - ви також можете легко знайти їхні ідентифікатори, використовуючи наступний баш-код:

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[@]}"

1
З Xcode 11.4 це підтримується безпосередньо Simulator.app та xcrun simctl uiкомандою.
russbishop

1
Так, я побачив це - я відповіді оновлю, як тільки все перевіряю. Autom Автоматика все ще приємна - особливо для автоматизованих тестів. Нова настройка simctl значно спростить вищевказаний код.
blackjacx

12

Ви можете скористатися налаштуванням "Переключити зовнішній вигляд" у спадному меню Симулятор (Shift-Command-A):

введіть тут опис зображення


9

Можна також переключити зовнішній вигляд програмно ( документи ):

override func viewDidLoad() {
    super.viewDidLoad()
    #if DEBUG
    // change the appearance only while testing  
    overrideUserInterfaceStyle = .dark
    #endif
}

4

Є два способи включення темного режиму в Simulator. Примітка. Переконайтеся, що ви використовуєте тренажер iOS 13. XD

Рішення 1: Змінення налаштувань збірки

  1. Відкрийте додаток Налаштування
  2. Виберіть розробника
  3. Увімкнути темний вигляд

Скріншот-1

Рішення 2: Програмно

Просто додайте цей код коду у файл ViewController.

override func viewDidLoad() {
    super.viewDidLoad()
    #if DEBUG
    // This changes appearance only for debug mode
    overrideUserInterfaceStyle = .dark
    #endif
}

Скріншот-2

Перегляньте ці яблучні документи для отримання більш детальної інформації.


0

Ви також можете переключити темний режим, використовуючи цей рядок, вам потрібно просто помістити ці рядки у файл info.plist

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

0

від терміналу:

xcrun simctl ui booted appearance light

xcrun simctl ui booted appearance dark

Дозволені лише кодові відповіді, але рекомендується також пояснити відповідь. Розглянемо додавання деяких пояснень.
zonksoft
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.