MapKit 自定义注释被添加到地图,但在地图上不可见

Posted

技术标签:

【中文标题】MapKit 自定义注释被添加到地图,但在地图上不可见【英文标题】:MapKit custom annotations being added to map, but are not visible on the map 【发布时间】:2010-06-09 08:37:58 【问题描述】:

我有一个带有 mapView 和 UITableView 的界面。从服务器加载数据,并创建注释并将其添加到地图中

[mapView addAnnotation:truck]

然后使用从

返回的数组填充 tableview

[mapView annotations]

一旦这个过程完成,我会检查地图上的注释数量,每当我点击表格中的一个单元格时都会调用[[mapView annotations] count],它等于它应该是的数量,所以所有的注释都被添加了到 mapView 上,但由于某种原因,我在模拟器中看不到任何注释。

图像的命名与在自定义 AnnotationView 中分配的一样,loadAnnotation 函数已正确完成,等等...我不知道它可能是什么,但我查看了图像文件之间的关联及其加载位置一百次找到差异,但一切看起来都很好。

一个有趣的点是,当我在单击单元格后打印和坐标值时(请记住,此数据直接来自 [mapView annotations],它看起来不错......但无论出于何种原因,注释视图都没有显示。

所以我想如果我能回答一个问题,那可能是什么原因导致 mapView 包含多个注释,但在地图上不显示任何注释?

谢谢

编辑了重要的附加信息

在模拟器中我的地图上显示的内容与我在 mapView 对象中看到的内容之间似乎存在脱节。例如,当我在 tableView 中选择一行时,我正在调用:

[mapView setRegion:MKCoordinateRegionMake([annotation coordinate], MKCoordinateSpanMake(.01, .01)) animated:YES];

这对模拟器中的地图没有影响。我已经检查过传递的坐标实际上是一个有效的坐标,但这似乎并不重要,因为地图没有响应。我认为我的 .xib 可能有问题,但它都连接正确。 delegate 是 outlet,mapView 是引用 outlet。

现在有人知道可能发生什么了吗?

【问题讨论】:

【参考方案1】:

这看起来确实像缺少图像。

尝试用 MKPinAnnotations 替换您的自定义注释进行测试,然后查看您的注释是否可见。

你实现了以下委托函数吗?

(MKAnnotationView*) mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation;

【讨论】:

【参考方案2】:

这一行:

mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];

正在搞砸一切。一旦我将其注释掉,该应用程序就开始正常工作了。

【讨论】:

以上是关于MapKit 自定义注释被添加到地图,但在地图上不可见的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MapKit (SwiftUI) 将工具提示添加到地图注释以在地图上显示位置名称

如何在地图视图中添加自定义标注视图

在 iOS MapKit 中,如何在地图旋转时为注释设置动画?

滚动 mapView 或点击标记时,如何创建具有自定义注释和区域焦点的地图?

MapKit 在 XCode 4.6 中滚动地图时更改注释视图顺序

IOS:将图像添加到自定义 MKAnnotationview