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 或点击标记时,如何创建具有自定义注释和区域焦点的地图?