Bagaimana cara menggunakan mode gelap di simulator iOS 13?


165

Sementara saya mengembangkan aplikasi iOS, saya perlu mengujinya di simulator dengan opsi mode gelap sehingga saya bisa mendapatkan lebih banyak kejelasan tentang UI aplikasi. Tetapi ketika saya pergi ke Pengaturan saya tidak mendapatkan opsi untuk mode gelap sebagai perangkat nyata ditampilkan.

Jawaban:


302

Di Pengaturan , gulir ke bawah ke Pengembang dan kemudian Tampilan Gelap

masukkan deskripsi gambar di sini


Memperbarui

Selain hal di atas, sekarang ada banyak cara lain untuk mengaktifkan tampilan gelap di simulator, seperti yang ditunjukkan dalam banyak jawaban bagus di bawah ini.

• Ubah Override Lingkungan dari Xcode (@AshCameron)

• Toggle Appearance Adari menu Simulator (@ Shredder2794)

• Perbarui dari baris perintah menggunakan xcrun simctl ui booted appearance …(@blackjacx, @tadija)

• Menggunakan pemrograman overrideUserInterfaceStyle = .dark(@thisIsTheFoxe)

• Tentukan UIUserInterfaceStyledi info.plist Anda (@DhavalGevariya)

• Gunakan SimGenie dari Curtis Herbert…  https://simgenie.app


78

Anda dapat mengganti mode antarmuka (mis. Terang / Gelap) serta menyesuaikan pengaturan tipe dinamis dengan cepat (saat simulator sedang berjalan) seperti ini:

Mode gelap dengan Xcode


Jawaban yang bagus Juga bagus untuk melihat semua ukuran dan aksesibilitas lainnya, membuatnya jauh lebih cepat saat berkembang
Matt Fletcher

3
Bagus 👍 Saya tidak akan pernah mengklik tombol yang tidak ditandai itu.
woz

3
ini seharusnya jawaban yang diterima menurut saya, singkat dan praktis daripada harus melalui beberapa menu.
Heckscheibe

6
Protip: jika Anda memiliki Simulator di latar depan, lebih dari Xcode, Anda dapat Command + klik tombol itu di Xcode (dan pada setiap switch di panel itu) untuk mengubah pengaturan sambil menjaga simulator di depan! kredit: Negara bagian WWDC dari iirc
Graystripe

13

Perubahan Penampilan Otomatis 🦉

Xcode 11.4 🌟

Apple merilis pembaruan Xcode yang kuat yang berisi beberapa hal berguna untuk topik ini. Penampilan sekarang dapat dipilih langsung di simulator. Cukup pilih Features > Toggle Appearanceatau ⇧ + ⌘ + A. Pergantian tampilan otomatis masih penting, misalnya untuk pengujian tangkapan layar otomatis pada baris perintah. Script menjadi mudah seperti ini ketika menggunakan 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

Tidak perlu lagi membunuh atau mengatur ulang simulator yang merupakan kemenangan kinerja besar. Juga tidak mengutak-atik alat plist lagi - selamanya. perlu diingat bahwa Anda harus menggunakan id perangkat yang tersedia di runtime yang Anda gunakan. Temukan mereka menggunakan xcrun simctl list.

Lihat juga skrip lengkap saya: https://github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh

Xcode 11.3

Ada cara menggunakan baris perintah untuk berganti simulator antara mode terang dan gelap. Jika Anda memiliki larik dengan ID perangkat Anda, Anda dapat melakukan hal berikut:

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

Jika Anda ingin menentukan nama perangkat dalam skrip Anda - karena ID perangkat berbeda pada mesin yang berbeda - Anda juga dapat dengan mudah menemukan id mereka menggunakan kode bash berikut:

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
Pada Xcode 11.4 ini didukung langsung oleh Simulator.app dan xcrun simctl uiperintah.
russbishop

1
Yap melihat ini - Saya akan memperbarui jawabannya segera setelah saya menguji semuanya 👍 Otomasi masih bagus - terutama untuk tes otomatis. Pengaturan simctl baru akan membuat kode di atas jauh lebih mudah.
blackjacx


9

Atau, Anda juga dapat mengganti tampilan secara terprogram ( dokumen ):

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

4

Ada dua cara untuk mengaktifkan mode gelap di Simulator. Catatan: Pastikan Anda menggunakan simulator iOS 13. XD

Solusi 1: Ubah pengaturan build

  1. Buka aplikasi Pengaturan
  2. Pilih Pengembang
  3. Aktifkan penampilan Gelap

Tangkapan layar-1

Solusi 2: Secara terprogram

Cukup tambahkan blok kode ini di file ViewController Anda.

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

Tangkapan layar-2

Periksa dokumen apel ini untuk detail lebih lanjut.


0

Anda juga dapat mengganti mode Gelap menggunakan baris ini, Anda hanya perlu meletakkan baris ini di file info.plist Anda

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

0

dari terminal:

xcrun simctl ui booted appearance light

xcrun simctl ui booted appearance dark

Kode hanya jawaban yang diizinkan, tetapi didorong untuk menjelaskan jawabannya juga. Pertimbangkan untuk menambahkan beberapa penjelasan.
zonksoft
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.