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 redup melalui properti lightingMode dan enum GMSNavigationLightingMode:

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

Mengaktifkan peralihan mode pencahayaan otomatis

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

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

  1. Menetapkan mode pencahayaan awal saat memulai: Saat Anda menyiapkan peta, baca properti suggestedLightingMode dari GMSNavigator dan tetapkan nilai tersebut ke mapView.lightingMode. Karena pemroses hanya diaktifkan saat mode pencahayaan yang disarankan berubah (seperti saat matahari terbit atau terbenam), menetapkan nilai awal akan memastikan peta segera dirender dalam mode pencahayaan rendah jika pengguna memulai navigasi di malam hari.
  2. Memproses perubahan mode pencahayaan selama navigasi: Gunakan 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 mengupdatenya 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 cara mengadopsi GMSNavigatorListener, lihat Mendeklarasikan kesesuaian dengan 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 dengan menetapkan mapView.lightingMode secara langsung dan menghilangkan update pemroses navigator(_:didChangeSuggestedLightingMode:).

Contoh berikut menunjukkan cara memaksa peta ke mode 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 dalam mode cahaya redup. Untuk informasi selengkapnya tentang cara menyesuaikan warna ini, lihat Warna header mode cahaya redup dalam panduan Mengubah UI navigasi.