کیت توسعه نرمافزار ناوبری (Navigation SDK) برای iOS به طور خودکار حالتهای روشن و تاریک سیستم iOS را دنبال نمیکند. در عوض، یک GMSMapView با قابلیت ناوبری، از طریق ویژگی lightingMode و enum GMSNavigationLightingMode از طرحهای رنگی معمولی و کمنور پشتیبانی میکند:
- حالت عادی (
.normal): از یک طرح رنگی مناسب برای مشاهده در نور روز استفاده میکند. - حالت نور کم (
.lowLight): از یک طرح رنگی مناسب برای مشاهده در شب استفاده میکند.
فعال کردن تغییر خودکار حالت روشنایی
کیت توسعه نرمافزار ناوبری برای iOS، حالت روشنایی پیشنهادی را بر اساس زمان روز و موقعیت مکانی دستگاه محاسبه میکند و آن را از طریق ویژگی suggestedLightingMode از GMSNavigator نمایش میدهد. با این حال، GMSMapView این توصیه را به طور خودکار اعمال نمیکند.
برای تغییر خودکار بین حالتهای نور معمولی و نور کم، مراحل زیر را در view controller خود انجام دهید:
- تنظیم حالت روشنایی اولیه در هنگام راهاندازی : هنگام تنظیم نقشه، ویژگی
suggestedLightingModeرا ازGMSNavigatorبخوانید و آن مقدار را بهmapView.lightingModeاختصاص دهید. از آنجا که شنونده فقط زمانی فعال میشود که حالت روشنایی پیشنهادی تغییر کند (مانند طلوع یا غروب خورشید)، تنظیم مقدار اولیه تضمین میکند که اگر کاربر در شب شروع به پیمایش کند، نقشه بلافاصله در حالت کمنور رندر شود. - گوش دادن به تغییرات حالت روشنایی در حین ناوبری : پروتکل
GMSNavigatorListenerرا اتخاذ کرده و متدnavigator(_:didChangeSuggestedLightingMode:)را برای بهروزرسانیmapView.lightingModeهر زمان که حالت پیشنهادی تغییر کند، پیادهسازی کنید.
مثال زیر نحوه تنظیم حالت روشنایی اولیه و بهروزرسانی آن هنگام تغییر حالت روشنایی پیشنهادی را نشان میدهد:
سویفت
// 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
}
هدف-سی
// 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:) حالت عادی یا کمنور را اجباری کنید.
مثال زیر نحوهی قرار دادن نقشه در حالت کمنور یا معمولی را نشان میدهد:
سویفت
// Force low-light mode.
mapView.lightingMode = .lowLight
// Or force normal (daylight) mode.
mapView.lightingMode = .normal
هدف-سی
// Force low-light mode.
_mapView.lightingMode = GMSNavigationLightingModeLowLight;
// Or force normal (daylight) mode.
_mapView.lightingMode = GMSNavigationLightingModeNormal;
سفارشیسازی رنگهای رابط کاربری در نور کم
همچنین میتوانید رنگهای پسزمینه اصلی و فرعی هدر ناوبری را وقتی نقشه در حالت کمنور است، سفارشی کنید. برای اطلاعات بیشتر در مورد سفارشیسازی این رنگها، به بخش «رنگهای هدر حالت کمنور» در راهنمای «اصلاح رابط کاربری ناوبری» مراجعه کنید.