我有三个MKPointAnnotation
个对象添加到与MKMapView
完全相同的坐标中,并且每个对象都有一个唯一的标题。
MKPointAnnotation *a1 = [[MKPointAnnotation alloc] init];
a1.coordinate = CLLocationCoordinate2DMake(45.875684, -122.656254);
a1.title = @"Title 1";
[self.mapView addAnnotation:a1];
MKPointAnnotation *a2 = [[MKPointAnnotation alloc] init];
a2.coordinate = CLLocationCoordinate2DMake(45.875684, -122.656254);
a2.title = @"Title 2";
[self.mapView addAnnotation:a2];
MKPointAnnotation *a3 = [[MKPointAnnotation alloc] init];
a3.coordinate = CLLocationCoordinate2DMake(45.875684, -122.656254);
a3.title = @"Title 3";
[self.mapView addAnnotation:a3];
将它们添加到地图时,通常只需点击注释,然后再次点击以循环重叠的引脚。但是,当有两个以上时,似乎只限于循环通过两个注释,即使有三个重叠。永远不会显示Title 1
:
这对我来说似乎是一个MKMapView
错误,但是之前有其他人经历过这种情况并找到了解决方法吗?
答案 0 :(得分:0)
我可以按照你的描述确认这是有效的,它确实看起来像一个错误(或者至少我找不到任何相关的文档)。
一个解决方案(解决方法)是管理mapView可以自己处理的两个注释。然后,当用户选择(或取消选择)注释时,您可以将刚取消选择的注释替换为第三个注释。类似的东西:
extension ViewController: MKMapViewDelegate {
func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) {
mapView.removeAnnotation(view.annotation!)
mapView.addAnnotation(a1)
}
}
我希望这是有道理的。祝你好运!