我正在尝试显示用户位置,但它并没有按我想要的方式工作。 我使用此函数来聚类注释并显示它重新组合的注释数量:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
let annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: MKMapViewDefaultClusterAnnotationViewReuseIdentifier , for: annotation)
annotationView.clusteringIdentifier = "identifier"
return annotationView
}
问题是:它聚集了"我的位置"由以下内容创建的注释:
showsUserLocation = true
但我不希望用户位置在地图上显示为简单的标记,我想保留showUserLocation"标记"。
我试图像这样抓住它:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
let annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: MKMapViewDefaultClusterAnnotationViewReuseIdentifier , for: annotation)
if annotation.title == "My Location"{
return nil
}
annotationView.clusteringIdentifier = "identifier"
return annotationView
}
但它会让应用程序崩溃。
我看过很多关于mapView:clusterAnnotationForMemberAnnotations
的帖子,但我不明白如何使用它。
谢谢!
答案 0 :(得分:1)
请尝试以下代码:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}
let annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: MKMapViewDefaultClusterAnnotationViewReuseIdentifier , for: annotation)
annotationView.clusteringIdentifier = "identifier"
return annotationView
}