Mar*_*hex 3 mapkit swift ios13 ios-darkmode
如何将地图从iOS 13更改为暗模式?
我已从 UserInterfaceStyle 中选择退出,因此系统范围的颜色不适用于我,所以我将手动进行。
我在8:19看过苹果WWDC2019 - Session 236 的这段视频,但那是快照,我没看懂。
实际上我正在尝试类似的事情:
private var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
mapView.backgroundColor = .black
}
Run Code Online (Sandbox Code Playgroud)
但它不会将主题或外观或 traitCollection 更改为深色。
有什么建议吗?
Mar*_*hex 11
这是您在 viewDidLoad 上需要的
if #available(iOS 13.0, *) {
self.overrideUserInterfaceStyle = .dark
}
Run Code Online (Sandbox Code Playgroud)
在 viewDidLoad 方法上设置overrideUserInterfaceStyle将强制该视图控制器使用您指定的所需模式。
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light
}
Run Code Online (Sandbox Code Playgroud)
地图快照
如果您尝试拍摄快照并与输出图像颜色混淆,请使用
if #available(iOS 13.0, *) {
mapSnapshotOptions.traitCollection = traitCollection
}
Run Code Online (Sandbox Code Playgroud)
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)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3813 次 |
最近记录: |