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 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 mengeksposnya 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:
- Menetapkan mode pencahayaan awal saat memulai: Saat Anda menyiapkan peta, baca
properti
suggestedLightingModedariGMSNavigatordan tetapkan nilai tersebut kemapView.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. - Memproses perubahan mode pencahayaan selama navigasi: Gunakan protokol
GMSNavigatorListenerdan terapkan metodenavigator(_:didChangeSuggestedLightingMode:)untuk memperbaruimapView.lightingModesetiap 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.
Memaksakan 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
listener 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 primer 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.