O SDK Navigation para iOS não segue automaticamente os modos claro e escuro do sistema iOS.
Em vez disso, um ativado para navegação
GMSMapView
oferece suporte a esquemas de cores normais e com pouca luz pela propriedade
lightingMode
e pelo tipo enumerado
GMSNavigationLightingMode:
- Modo normal (
.normal): usa um esquema de cores adequado para visualização à luz do dia. - Modo pouca luz (
.lowLight): usa um esquema de cores adequado para visualização noturna.
Ativar a troca automática do modo de iluminação
O SDK Navigation para iOS calcula o modo de iluminação recomendado com base na hora do
dia e na localização do dispositivo e o expõe pela
suggestedLightingMode
propriedade de
GMSNavigator.
No entanto,
GMSMapView
não aplica essa recomendação automaticamente.
Para alternar entre os modos normal e pouca luz automaticamente, siga estas etapas no controlador de visualização:
- Defina o modo claro inicial na inicialização: ao configurar o mapa, leia
a
suggestedLightingModepropriedade deGMSNavigatore atribua esse valor amapView.lightingMode. Como o listener só é acionado quando o modo de iluminação sugerido muda (como ao nascer ou pôr do sol), a definição do valor inicial garante que o mapa seja renderizado no modo pouca luz imediatamente se o usuário iniciar a navegação à noite. - Detecte mudanças no modo de iluminação durante a navegação: adote o
GMSNavigatorListenerprotocolo e implemente onavigator(_:didChangeSuggestedLightingMode:)método para atualizarmapView.lightingModesempre que o modo sugerido mudar.
O exemplo a seguir mostra como definir o modo de iluminação inicial e atualizá-lo quando o modo de iluminação sugerido muda:
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;
}
Para mais informações sobre como adotar
GMSNavigatorListener,
consulte Declarar conformidade com os protocolos necessários
no guia Detectar eventos de navegação.
Forçar o modo normal ou pouca luz
Se você não quiser que o mapa mude de modo automaticamente, force o modo normal
ou pouca luz definindo
mapView.lightingMode
diretamente e omitindo a
navigator(_:didChangeSuggestedLightingMode:)
atualização do listener.
O exemplo a seguir mostra como forçar o mapa para o modo pouca luz ou 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;
Personalizar as cores da interface no modo pouca luz
Também é possível personalizar as cores de plano de fundo primárias e secundárias do cabeçalho de navegação quando o mapa está no modo pouca luz. Para mais informações sobre como personalizar essas cores, consulte Cores do cabeçalho do modo pouca luz no guia Modificar a interface de navegação.