iOS용 Navigation SDK는 iOS 시스템 밝은 모드와 어두운 모드를 자동으로 따르지 않습니다.
대신 탐색이 사용 설정된
GMSMapView
는 일반 및 저조도 색 구성표를
lightingMode
속성과
GMSNavigationLightingMode
열거형을 통해 지원합니다.
자동 밝기 모드 전환 사용 설정
iOS용 탐색 SDK는 시간과 기기의 위치를 기반으로 권장되는 밝은 모드를 계산하고
suggestedLightingMode
속성을 통해 이를 노출합니다.
GMSNavigator
하지만
GMSMapView
이 권장사항을 자동으로 적용하지 않습니다.
일반 모드와 저조도 모드 간에 자동으로 전환하려면 뷰 컨트롤러에서 다음 단계를 완료하세요.
- 시작 시 초기 밝기 모드 설정: 지도를 설정할 때
suggestedLightingMode에서GMSNavigator속성을 읽고 해당 값을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 수정 가이드를 참고하세요.