Navigation SDK cho iOS không tự động tuân theo chế độ sáng và tối của hệ thống iOS.
Thay vào đó, một
GMSMapView
đã bật tính năng chỉ đường sẽ hỗ trợ bảng phối màu bình thường và bảng phối màu trong điều kiện ánh sáng yếu thông qua thuộc tính
lightingMode
và enum
GMSNavigationLightingMode:
- Chế độ thông thường (
.normal): Sử dụng bảng phối màu phù hợp để xem vào ban ngày. - Chế độ ánh sáng yếu (
.lowLight): Sử dụng bảng phối màu phù hợp để xem vào ban đêm.
Bật tính năng tự động chuyển đổi chế độ chiếu sáng
Navigation SDK cho iOS tính toán chế độ sáng được đề xuất dựa trên thời gian trong ngày và vị trí của thiết bị, đồng thời hiển thị chế độ đó thông qua thuộc tính suggestedLightingMode của GMSNavigator.
Tuy nhiên,
GMSMapView
không tự động áp dụng đề xuất này.
Để tự động chuyển đổi giữa chế độ bình thường và chế độ ánh sáng yếu, hãy hoàn tất các bước sau trong trình điều khiển khung hiển thị:
- Đặt chế độ sáng ban đầu khi khởi động: Khi bạn thiết lập bản đồ, hãy đọc thuộc tính
suggestedLightingModetừGMSNavigatorvà gán giá trị đó chomapView.lightingMode. Vì trình nghe chỉ kích hoạt khi chế độ chiếu sáng được đề xuất thay đổi (chẳng hạn như lúc bình minh hoặc hoàng hôn), nên việc đặt giá trị ban đầu sẽ đảm bảo bản đồ hiển thị ngay ở chế độ ánh sáng yếu nếu người dùng bắt đầu đi theo chỉ dẫn vào ban đêm. - Theo dõi các thay đổi về chế độ sáng trong quá trình điều hướng: Sử dụng giao thức
GMSNavigatorListenervà triển khai phương thứcnavigator(_:didChangeSuggestedLightingMode:)để cập nhậtmapView.lightingModebất cứ khi nào chế độ được đề xuất thay đổi.
Ví dụ sau đây cho thấy cách đặt chế độ sáng ban đầu và cập nhật chế độ đó khi chế độ sáng được đề xuất thay đổi:
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;
}
Để biết thêm thông tin về cách sử dụng GMSNavigatorListener, hãy xem phần Khai báo việc tuân thủ các giao thức bắt buộc trong hướng dẫn Nghe sự kiện chỉ đường.
Buộc sử dụng chế độ bình thường hoặc chế độ ánh sáng yếu
Nếu không muốn bản đồ tự động chuyển đổi chế độ, bạn có thể buộc bản đồ sử dụng chế độ bình thường hoặc chế độ ánh sáng yếu bằng cách đặt trực tiếp mapView.lightingMode và bỏ qua bản cập nhật trình nghe navigator(_:didChangeSuggestedLightingMode:).
Ví dụ sau đây cho thấy cách buộc bản đồ chuyển sang chế độ ánh sáng yếu hoặc chế độ bình thường:
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;
Tuỳ chỉnh màu giao diện người dùng trong điều kiện ánh sáng yếu
Bạn cũng có thể tuỳ chỉnh màu nền chính và phụ của tiêu đề điều hướng khi bản đồ ở chế độ ánh sáng yếu. Để biết thêm thông tin về cách tuỳ chỉnh các màu này, hãy xem phần Màu tiêu đề ở chế độ ánh sáng yếu trong hướng dẫn Sửa đổi giao diện người dùng điều hướng.