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 đó, có hỗ trợ tính năng điều hướng
GMSMapView
sẽ hỗ trợ các bảng phối màu bình thường và ánh sáng yếu thông qua thuộc tính
lightingMode
và enum
GMSNavigationLightingMode:
- Chế độ bình 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ế độ ánh sáng
Navigation SDK cho iOS tính toán chế độ ánh 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ế độ này thông qua
suggestedLightingMode
thuộc tính 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ế độ ánh sáng ban đầu khi khởi động: Khi 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ế độ ánh 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ều hướng vào ban đêm. - Theo dõi các thay đổi về chế độ ánh sáng trong quá trình điều hướng: Áp 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 biết cách đặt chế độ ánh sáng ban đầu và cập nhật chế độ này khi chế độ ánh 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 áp dụng
GMSNavigatorListener,
hãy xem phần Khai báo sự tuân thủ các giao thức bắt buộc
trong hướng dẫn Theo dõi các sự kiện điều hướ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 sử dụng chế độ bình thường
hoặc chế độ ánh sáng yếu bằng cách đặt
mapView.lightingMode
trực tiếp và bỏ qua bản cập nhật trình nghe
navigator(_:didChangeSuggestedLightingMode:).
Ví dụ sau đây cho biết 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 ở chế độ ánh sáng yếu
Bạn cũng có thể tuỳ chỉnh màu nền chính và màu nền 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.