【发布时间】:2017-02-09 18:12:27
【问题描述】:
我可以通过简单地将annotation 传递给MKMapView 来获得annotationView:
view(for annotation: MKAnnotation) -> MKAnnotationView?
这会返回一个optional,因为如果注释不在屏幕上,它可能没有关联的annotationView。
是否有可靠的方法来始终为给定的MKAnnotation 检索MKAnnotationView?
我什至尝试过手动调用 MKMapView 的委托,但它使我的应用程序崩溃并显示一条模糊的消息:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}
return MKPinAnnotationView(annotation: annotation, reuseIdentifier: nil)
}
用例:
我正在开发一个自定义 VoiceOver 转子,它允许用户通过轻弹屏幕从一个大头针导航到另一个大头针。因此,如果每个大陆上都有 1 个大头针,他们可以向上或向下滑动,地图就会以该大头针为中心,而无需平移地图。困难是我需要告诉自定义转子去哪里,但是如果注释在屏幕外,还没有与之关联的 annotationView,所以我无法正确指示转子。
【问题讨论】:
标签: swift mkmapview mkannotation mkannotationview uiaccessibility