根据地图的跨度/缩放更改MapView注释子视图

时间:2020-05-17 20:26:48

标签: swift swiftui mapkit mapkitannotation

我有一个带有MapView的SwiftUI应用。在MapViewCoordinator类中,我创建了自定义注释。Annotation

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?
{
    let annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "customAnnotation")
    annotationView.image = UIImage(systemName: "mappin.circle")
...

在代码后面,一个SubView被添加到每个AnnotationView。这些是带有位置名称的标签。我只想从地图的特定缩放/跨度显示这些标签。如果地图缩小得太远,标签将重叠。那我不想给他们看。

我可以轻松获得所需的值:

let lati = mapView.region.span.latitudeDelta

不幸的是,当跨度改变时,并不总是调用用于创建注释的方法。这只会偶尔发生一次。 在方法mapViewDidChangeVisibleRegion中,似乎我只能访问MKAnnotation,而不能访问MKAnnotationView。

我在做什么错了?

0 个答案:

没有答案