Navigation SDK ל-iOS לא עובר באופן אוטומטי בין המצב הבהיר והמצב הכהה של מערכת iOS.
במקום זאת, GMSMapView עם ניווט תומך בערכות צבעים רגילות ובתאורה חלשה באמצעות המאפיין lightingMode והמאפיין enum GMSNavigationLightingMode:
- מצב רגיל (
.normal): ערכת צבעים שמתאימה לצפייה באור יום. - מצב תאורה חלשה (
.lowLight): ערכת צבעים שמתאימה לצפייה בלילה.
הפעלה של מעבר אוטומטי בין מצבי תאורה
Navigation SDK ל-iOS מחשב את מצב התאורה המומלץ על סמך השעה ביום ומיקום המכשיר, וחושף אותו דרך המאפיין suggestedLightingMode של GMSNavigator.
עם זאת,
GMSMapView
לא מיישם את ההמלצה הזו באופן אוטומטי.
כדי לעבור בין מצב רגיל למצב תאורה חלשה באופן אוטומטי, מבצעים את השלבים הבאים ב-view controller:
- הגדרת מצב התאורה הראשוני בזמן ההפעלה: כשמגדירים את המפה, קוראים את המאפיין
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;
התאמה אישית של צבעי ממשק המשתמש בתנאי תאורה נמוכה
אפשר גם להתאים אישית את צבעי הרקע הראשיים והמשניים של כותרת הניווט כשהמפה במצב תאורה חלשה. מידע נוסף על התאמה אישית של הצבעים האלה זמין בקטע צבעי הכותרת במצב תאורה חלשה במדריך לשינוי ממשק המשתמש של הניווט.