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