لا تتوافق حزمة تطوير البرامج للتنقّل على أجهزة iOS تلقائيًا مع الوضعَين الفاتح والداكن لنظام التشغيل iOS.
بدلاً من ذلك، يتيح عنصر
GMSMapView
المزوّد بإمكانية التنقّل استخدام أنظمة ألوان عادية ومنخفضة الإضاءة من خلال السمة
lightingMode
وقائمة التعداد
GMSNavigationLightingMode:
- الوضع العادي (
.normal): يستخدم نظام ألوان مناسبًا للعرض في ضوء النهار. - وضع الإضاءة المنخفضة (
.lowLight): يستخدم نظام ألوان مناسبًا للعرض الليلي.
تفعيل التبديل التلقائي بين أوضاع الإضاءة
تحسب حزمة تطوير البرامج للتنقّل على أجهزة 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;
تخصيص ألوان واجهة المستخدم في الإضاءة المنخفضة
يمكنك أيضًا تخصيص ألوان الخلفية الأساسية والثانوية لرأس شريط التنقّل عندما تكون الخريطة في وضع الإضاءة المنخفضة. لمزيد من المعلومات حول تخصيص هذه الألوان، راجِع مقالة ألوان عناوين وضع الإضاءة المنخفضة في دليل تعديل واجهة مستخدم التنقّل.