Navigation SDK ל-iOS לא פועל אוטומטית לפי המצב הבהיר והמצב הכהה של מערכת iOS.
במקום זאת, GMSMapView עם ניווט תומך בסכימות צבעים רגילות ובסכימות צבעים לתאורה חלשה באמצעות המאפיין lightingMode והמאפיין enum GMSNavigationLightingMode:
- מצב רגיל (
.normal): שימוש בערכת צבעים שמתאימה לצפייה באור יום. - מצב תאורה חלשה (
.lowLight): ערכת צבעים שמתאימה לצפייה בלילה.
הפעלה של מעבר אוטומטי בין מצבי תאורה
Navigation SDK ל-iOS מחשב את מצב התאורה המומלץ על סמך השעה ביום ומיקום המכשיר, וחושף אותו דרך המאפיין 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;
התאמה אישית של צבעי ממשק המשתמש בתנאי תאורה נמוכה
אפשר גם להתאים אישית את צבעי הרקע הראשי והמשני של כותרת הניווט כשהמפה במצב תאורה חלשה. מידע נוסף על התאמה אישית של הצבעים האלה זמין בקטע Low-light mode header colors (צבעי הכותרת במצב תאורה חלשה) במדריך Modify the navigation UI (שינוי ממשק המשתמש של הניווט).