iOS के लिए Navigation SDK, iOS सिस्टम के लाइट और डार्क मोड को अपने-आप फ़ॉलो नहीं करता.
इसके बजाय, नेविगेशन की सुविधा चालू करने वाला GMSMapView, lightingMode प्रॉपर्टी और GMSNavigationLightingMode enum के ज़रिए, सामान्य और कम रोशनी वाली कलर स्कीम के साथ काम करता है:
- सामान्य मोड (
.normal): इसमें ऐसी कलर स्कीम का इस्तेमाल किया जाता है जो दिन की रोशनी में देखने के लिए सही हो. - कम रोशनी वाला मोड (
.lowLight): इसमें ऐसी कलर स्कीम का इस्तेमाल किया जाता है जो रात में देखने के लिए सही हो.
लाइटिंग मोड अपने-आप बदलने की सुविधा चालू करना
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;
कम रोशनी वाले मोड में यूज़र इंटरफ़ेस के रंगों को पसंद के मुताबिक बनाना
मैप के लो-लाइट मोड में होने पर, नेविगेशन हेडर के मुख्य और दूसरे बैकग्राउंड के रंगों को भी अपनी पसंद के मुताबिक बनाया जा सकता है. इन रंगों को पसंद के मुताबिक बनाने के बारे में ज़्यादा जानने के लिए, नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करने से जुड़ी गाइड में कम रोशनी वाले मोड के हेडर के रंग देखें.