我已经为我的应用程序实现了一个 Today 小部件。
mkmapView 在两种情况下都能正常工作:1. Xcode 模拟器 2. 使用 Xcode 运行的设备
但是当我通过设备本身运行小部件时,mapView 仅显示背景颜色和用户的位置标记。
有人知道为什么吗?如何解决?
谢谢!
我已经为我的应用程序实现了一个 Today 小部件。
mkmapView 在两种情况下都能正常工作:1. Xcode 模拟器 2. 使用 Xcode 运行的设备
但是当我通过设备本身运行小部件时,mapView 仅显示背景颜色和用户的位置标记。
有人知道为什么吗?如何解决?
谢谢!
直接来自Apple 文档
确保 Today 扩展点适合您要提供的功能。最好的小部件为用户提供快速更新或启用非常简单的任务。如果您想创建一个应用程序扩展来启用多步骤任务或帮助用户执行冗长的任务,例如上传或下载内容,那么 Today 扩展点不是正确的选择。
MKMapView
当您跨越或缩放时,所需的内容会不断变化,并且以尊重的方式调用代表。
因此,这是您在今天的小部件中添加地图时看不到任何更新的原因之一。
您可以使用MKMapSnapshotter拍摄地图的快照,但在今天的扩展中使用它时我仍然遇到一些内存和自动布局(为什么!?!?)问题。我们不是那么好但可行的解决方案是使用我们应用程序的后台位置获取机制和共享容器来存储来自 MKMapSnapshotter 的 NSData。然后在今天的扩展中,做尽可能少的工作,只需从容器中读取 NSData 并使用 UIImageView 显示它。