iOS용 Navigation SDK는 iOS 시스템 밝은 모드와 어두운 모드를 자동으로 따르지 않습니다.
대신 탐색 지원 GMSMapView은 lightingMode 속성과 GMSNavigationLightingMode 열거형을 통해 일반 및 저조도 색 구성표를 지원합니다.
자동 조명 모드 전환 사용 설정
iOS용 Navigation SDK는 시간과 기기의 위치를 기반으로 권장 조명 모드를 계산하고 GMSNavigator의 suggestedLightingMode 속성을 통해 이를 노출합니다.
하지만 GMSMapView은 이 추천을 자동으로 적용하지 않습니다.
일반 모드와 어두운 조명 모드 간에 자동으로 전환하려면 뷰 컨트롤러에서 다음 단계를 완료하세요.
- 시작 시 초기 조명 모드 설정: 지도를 설정할 때
GMSNavigator에서suggestedLightingMode속성을 읽고 해당 값을mapView.lightingMode에 할당합니다. 리스너는 추천 조명 모드가 변경될 때만(예: 일출 또는 일몰 시) 실행되므로 초기 값을 설정하면 사용자가 야간에 탐색을 시작하는 경우 지도가 즉시 어두운 모드로 렌더링됩니다. - 탐색 중 조명 모드 변경사항 수신 대기:
GMSNavigatorListener프로토콜을 채택하고navigator(_:didChangeSuggestedLightingMode:)메서드를 구현하여 제안된 모드가 변경될 때마다mapView.lightingMode를 업데이트합니다.
다음 예에서는 초기 조명 모드를 설정하고 추천 조명 모드가 변경될 때 이를 업데이트하는 방법을 보여줍니다.
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;
}
GMSNavigatorListener 채택에 관한 자세한 내용은 탐색 이벤트 수신 대기 가이드의 필수 프로토콜 준수 선언을 참고하세요.
일반 모드 또는 어두운 조명 모드 강제 적용
지도가 자동으로 모드를 전환하지 않도록 하려면 mapView.lightingMode을 직접 설정하고 navigator(_:didChangeSuggestedLightingMode:) 리스너 업데이트를 생략하여 일반 모드 또는 야간 모드를 강제할 수 있습니다.
다음 예시에서는 지도를 어두운 모드 또는 일반 모드로 강제 설정하는 방법을 보여줍니다.
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;
어두운 환경 UI 색상 맞춤설정
지도가 어두운 모드일 때 탐색 헤더의 기본 및 보조 배경색을 맞춤설정할 수도 있습니다. 이러한 색상을 맞춤설정하는 방법에 관한 자세한 내용은 탐색 UI 수정 가이드의 어두운 모드 헤더 색상을 참고하세요.