【问题标题】:How can I turn the MKMapView for dark mode?如何将 MKMapView 设置为暗模式?
【发布时间】:2020-02-22 04:32:08
【问题描述】:

如何将地图从 iOS 13 更改为暗模式?

我选择退出 UserInterfaceStyle,因此系统范围的颜色不适用于我,所以我将手动执行。

我看过来自 Apple WWDC2019 - Session 236, at 8:19s 的视频,但那是快照,我没听懂。

实际上我正在尝试类似的东西:

private var mapView: MKMapView!

override func viewDidLoad() {
    super.viewDidLoad()
    mapView.backgroundColor = .black       
}

但它不会将主题或外观或 traitCollection 更改为深色。

有什么建议吗?

【问题讨论】:

    标签: swift mapkit ios13 ios-darkmode


    【解决方案1】:

    这就是你需要的 viewDidLoad

    if #available(iOS 13.0, *) {
        self.overrideUserInterfaceStyle = .dark
    }
    

    【讨论】:

    • 完美,现在已选择退出黑暗模式,我的地图快照出现黑色。这解决了它。
    【解决方案2】:

    如果您在这里寻找 macOS 解决方案(像我一样),只需更新 MKMapView 上的外观属性:

    if #available(OSX 10.14, *) {
        mapView.appearance = NSAppearance(named: .darkAqua) // .aqua for default mode
    }
    

    【讨论】:

      【解决方案3】:

      在 viewDidLoad 方法上设置 overrideUserInterfaceStyle 将强制该视图控制器使用您指定的所需模式。

       if #available(iOS 13.0, *) {
           overrideUserInterfaceStyle = .light
       }
      

      地图快照

      如果您尝试拍摄快照并与输出图像颜色混淆使用

       if #available(iOS 13.0, *) {
           mapSnapshotOptions.traitCollection = traitCollection
       }
      

      MKMapSnapshotter 的完整代码

      func mapCamera(location : CLLocationCoordinate2D )-> MKMapSnapshotter {
          let mapSnapshotOptions = MKMapSnapshotter.Options()
             
          let region = MKCoordinateRegion(center: location, latitudinalMeters: 500, longitudinalMeters: 500)
          mapSnapshotOptions.region = region
          mapSnapshotOptions.scale = UIScreen.main.scale
          mapSnapshotOptions.size = AppConstants.Size.mapDetailView
          mapSnapshotOptions.showsBuildings = true
          mapSnapshotOptions.showsPointsOfInterest = true
          if #available(iOS 13.0, *) {
              mapSnapshotOptions.traitCollection = traitCollection
          }
          return MKMapSnapshotter(options: mapSnapshotOptions)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多