Настройте обычный и режим низкой освещенности.

SDK навигации для iOS не автоматически следует светлым и темным режимам системы iOS. Вместо этого, GMSMapView с поддержкой навигации использует обычные и темные цветовые схемы через свойство lightingMode и перечисление GMSNavigationLightingMode :

  • Normal mode ( .normal ): Uses a color scheme suitable for daylight viewing.
  • Low-light mode ( .lowLight ): Uses a color scheme suitable for night viewing.

Enable automatic lighting mode switching

SDK навигации для iOS вычисляет рекомендуемый режим освещения на основе времени суток и местоположения устройства и предоставляет его через свойство suggestedLightingMode объекта GMSNavigator . Однако GMSMapView не применяет эту рекомендацию автоматически.

To switch between normal and low-light modes automatically, complete the following steps in your view controller:

  1. Установите начальный режим освещения при запуске : при настройке карты считайте свойство suggestedLightingMode из GMSNavigator и присвойте это значение свойству mapView.lightingMode . Поскольку обработчик событий срабатывает только при изменении предлагаемого режима освещения (например, на восходе или закате солнца), установка начального значения гарантирует, что карта сразу же отобразится в режиме низкой освещенности, если пользователь начнет навигацию ночью.
  2. Отслеживайте изменения режима освещения во время навигации : используйте протокол GMSNavigatorListener и реализуйте метод navigator(_:didChangeSuggestedLightingMode:) , чтобы обновлять mapView.lightingMode всякий раз, когда изменяется предлагаемый режим.

The following example shows how to set the initial lighting mode and update it when the suggested lighting mode changes:

Быстрый

// 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;
}

For more information about adopting GMSNavigatorListener , see Declaring conformance to the required protocols in the Listen for navigation events guide.

Force normal or low-light mode

Если вы не хотите, чтобы карта автоматически переключала режимы, вы можете принудительно установить обычный или слабоосвещенный режим, задав mapView.lightingMode напрямую и пропустив обновление обработчика события navigator(_:didChangeSuggestedLightingMode:) .

The following example shows how to force the map into low-light or normal mode:

Быстрый

// 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;

Customize low-light UI colors

Вы также можете настроить основной и дополнительный цвета фона заголовка навигации, когда карта находится в режиме низкой освещенности. Дополнительную информацию о настройке этих цветов см. в разделе «Цвета заголовка в режиме низкой освещенности» в руководстве «Изменение пользовательского интерфейса навигации».