如何从 iOS 13 将地图更改为暗模式?
我已选择退出UserInterfaceStyle,因此系统范围的颜色将不适用于我,因此我将手动进行。
我已经看过来自苹果WWDC2019 - Session 236, at 8:19s的视频,但这是用于快照的,我没有得到。
实际上我在尝试类似的事情:
private var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
mapView.backgroundColor = .black
}
,但不会将主题或外观或traitCollection更改为黑暗。
有什么建议吗?
答案 0 :(得分:3)
在viewDidLoad方法上设置 overrideUserInterfaceStyle 会强制该视图控制器使用您指定的所需模式。
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light
}
MapSnapShot
如果您要拍摄快照并与输出图像颜色混淆,请使用
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)
}
答案 1 :(得分:1)
这是您需要的viewDidLoad
if #available(iOS 13.0, *) {
self.overrideUserInterfaceStyle = .dark
}
答案 2 :(得分:1)
如果您是在这里搜索macOS解决方案的(像我一样),只需更新MKMapView上的外观属性:
<button id="inc" onclick="move(1)">Inc</button>
<button id="dec" onclick="move(-1)">Dec</button>