Định cấu hình chế độ thông thường và chế độ ánh sáng yếu

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ị:

  1. Đặ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 suggestedLightingMode từ GMSNavigator và gán giá trị đó cho mapView.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.
  2. 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 GMSNavigatorListener và triển khai phương thức navigator(_:didChangeSuggestedLightingMode:) để cập nhật mapView.lightingMode bấ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.