Đị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 đó, GMSMapView có hỗ trợ chế độ điều hướng sẽ hỗ trợ các bảng phối màu bình thường và thiếu sáng 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 chế độ tự động chuyển đổi chế độ chiếu sáng

Navigation SDK cho iOS tính toán chế độ chiếu 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 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ế độ chiếu 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à chỉ định 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 chỉ đường vào ban đêm.
  2. Theo dõi các thay đổi về chế độ chiếu sáng trong quá trình điều hướng: Áp 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 biết cách đặt chế độ chiếu sáng ban đầu và cập nhật chế độ này khi chế độ chiếu sáng đề 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 sự 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 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 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 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 đề của 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.