Pakiet SDK do nawigacji na iOS nie przełącza się automatycznie między trybem jasnym a ciemnym systemu iOS.
Zamiast tego `GMSMapView` z włączoną nawigacją
GMSMapView
obsługuje schematy kolorów w trybie normalnym i słabego oświetlenia za pomocą właściwości
lightingMode
i wyliczenia
GMSNavigationLightingMode:
- Tryb normalny (
.normal): używa schematu kolorów odpowiedniego do oglądania w świetle dziennym. - Tryb słabego oświetlenia (
.lowLight): używa schematu kolorów odpowiedniego do oglądania w nocy.
Włączanie automatycznego przełączania trybu oświetlenia
Pakiet SDK do nawigacji na iOS oblicza zalecany tryb jasny na podstawie pory dnia i lokalizacji urządzenia oraz udostępnia go za pomocą właściwości suggestedLightingMode GMSNavigator.
Jednak
GMSMapView
nie stosuje tej rekomendacji automatycznie.
Aby automatycznie przełączać się między trybem normalnym a trybem słabego oświetlenia, wykonaj te czynności w kontrolerze widoku:
- Ustaw początkowy tryb jasny podczas uruchamiania: podczas konfigurowania mapy odczytaj właściwość
suggestedLightingModezGMSNavigatori przypisz tę wartość domapView.lightingMode. Ponieważ detektor uruchamia się tylko wtedy, gdy zmieni się sugerowany tryb oświetlenia (np. o wschodzie lub zachodzie słońca), ustawienie wartości początkowej zapewnia, że mapa będzie renderowana w trybie słabego oświetlenia, jeśli użytkownik rozpocznie nawigację w nocy. - Nasłuchuj zmian trybu oświetlenia podczas nawigacji: zastosuj protokół
GMSNavigatorListeneri zaimplementuj metodęnavigator(_:didChangeSuggestedLightingMode:), aby aktualizowaćmapView.lightingModeza każdym razem, gdy zmieni się sugerowany tryb.
Poniższy przykład pokazuje, jak ustawić początkowy tryb oświetlenia i zaktualizować go, gdy zmieni się sugerowany tryb oświetlenia:
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;
}
Więcej informacji o stosowaniu
GMSNavigatorListener,
znajdziesz w artykule Deklarowanie zgodności z wymaganymi
protokołami
w przewodniku Nasłuchiwanie zdarzeń nawigacji.
Wymuszanie trybu normalnego lub słabego oświetlenia
Jeśli nie chcesz, aby mapa automatycznie przełączała tryby, możesz wymusić tryb normalny
lub słabego oświetlenia, ustawiając
mapView.lightingMode
bezpośrednio i pomijając aktualizację detektora
navigator(_:didChangeSuggestedLightingMode:).
Poniższy przykład pokazuje, jak wymusić tryb słabego oświetlenia lub tryb normalny na mapie:
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;
Dostosowywanie kolorów interfejsu w trybie słabego oświetlenia
Możesz też dostosować podstawowy i dodatkowy kolor tła nagłówka nawigacji, gdy mapa jest w trybie słabego oświetlenia. Więcej informacji o dostosowywaniu tych kolorów znajdziesz w artykule Kolory nagłówka w trybie słabego oświetlenia w przewodniku Modyfikowanie interfejsu nawigacji.