Mengonfigurasi mode normal dan cahaya redup

Navigation SDK for iOS tidak otomatis mengikuti mode terang dan gelap sistem iOS. Sebagai gantinya, GMSMapView yang mendukung navigasi mendukung skema warna normal dan cahaya redup melalui properti lightingMode dan enum GMSNavigationLightingMode:

  • Mode normal (.normal): Menggunakan skema warna yang sesuai untuk tampilan di siang hari.
  • Mode cahaya redup (.lowLight): Menggunakan skema warna yang cocok untuk dilihat pada malam hari.

Mengaktifkan peralihan mode pencahayaan otomatis

Navigation SDK for iOS menghitung mode pencahayaan yang direkomendasikan berdasarkan waktu dan lokasi perangkat, serta menampilkannya melalui properti suggestedLightingMode dari GMSNavigator. Namun, GMSMapView tidak menerapkan rekomendasi ini secara otomatis.

Untuk beralih antara mode normal dan cahaya redup secara otomatis, selesaikan langkah-langkah berikut di pengontrol tampilan Anda:

  1. Menetapkan mode pencahayaan awal saat startup: Saat Anda menyiapkan peta, baca properti suggestedLightingMode dari GMSNavigator dan tetapkan nilai tersebut ke mapView.lightingMode. Karena pendengar hanya diaktifkan saat mode pencahayaan yang disarankan berubah (seperti saat matahari terbit atau terbenam), menyetel nilai awal memastikan peta dirender dalam mode cahaya redup segera jika pengguna memulai navigasi pada malam hari.
  2. Memproses perubahan mode pencahayaan selama navigasi: Terapkan protokol GMSNavigatorListener dan terapkan metode navigator(_:didChangeSuggestedLightingMode:) untuk memperbarui mapView.lightingMode setiap kali mode yang disarankan berubah.

Contoh berikut menunjukkan cara menyetel mode pencahayaan awal dan memperbaruinya saat mode pencahayaan yang disarankan berubah:

Swift

// Step 1: Set the initial lighting mode on launch or setup.
mapView.navigator?.add(self)
mapView.lightingMode = mapView.navigator?.suggestedLightingMode ?? .normal

// Step 2: Update the lighting mode when the sun sets or rises during navigation.
func navigator(
  _ navigator: GMSNavigator,
  didChangeSuggestedLightingMode lightingMode: GMSNavigationLightingMode
) {
  mapView.lightingMode = lightingMode
}

Objective-C

// Step 1: Set the initial lighting mode on launch or setup.
[_mapView.navigator addListener:self];
_mapView.lightingMode = _mapView.navigator.suggestedLightingMode;

// Step 2: Update the lighting mode when the sun sets or rises during navigation.
- (void)navigator:(GMSNavigator *)navigator
    didChangeSuggestedLightingMode:(GMSNavigationLightingMode)lightingMode {
  _mapView.lightingMode = lightingMode;
}

Untuk mengetahui informasi selengkapnya tentang penggunaan GMSNavigatorListener, lihat Mendeklarasikan kepatuhan terhadap protokol yang diperlukan dalam panduan Memproses peristiwa navigasi.

Memaksa mode normal atau cahaya redup

Jika tidak ingin peta beralih mode secara otomatis, Anda dapat menerapkan mode normal atau cahaya redup secara paksa dengan menetapkan mapView.lightingMode secara langsung dan menghilangkan pembaruan pendengar navigator(_:didChangeSuggestedLightingMode:).

Contoh berikut menunjukkan cara memaksa peta ke mode cahaya redup atau normal:

Swift

// Force low-light mode.
mapView.lightingMode = .lowLight

// Or force normal (daylight) mode.
mapView.lightingMode = .normal

Objective-C

// Force low-light mode.
_mapView.lightingMode = GMSNavigationLightingModeLowLight;

// Or force normal (daylight) mode.
_mapView.lightingMode = GMSNavigationLightingModeNormal;

Menyesuaikan warna UI cahaya redup

Anda juga dapat menyesuaikan warna latar belakang utama dan sekunder header navigasi saat peta berada dalam mode cahaya redup. Untuk mengetahui informasi selengkapnya tentang cara menyesuaikan warna ini, lihat Warna header mode cahaya redup di panduan Memodifikasi UI navigasi.