【发布时间】:2015-10-24 10:51:58
【问题描述】:
我在 xcode 中有一个地图视图,一切正常。
我的页面刚才是这样的:
- 从后端数据库下载大量数据和位置
- 使用位置和放置图钉填充地图视图
- 在地图视图下方填充表格
一切都很好,我最终得到了一个带有大量图钉的地图视图,以及一个包含这些图钉详细信息的表格视图。
我现在想做的是让用户点击表格视图中的一行,并让地图缩放并居中到相应的地图图钉,然后自动激活注释图钉标注。
在我的“didselectrow”方法中,我有以下内容:
MKCoordinateSpan span = MKCoordinateSpanMake(0.1f, 0.1f);
CLLocationCoordinate2D coordinate = { [item.latitude floatValue], [item.longitude floatValue] };
MKCoordinateRegion region = { coordinate, span };
[self.mapView setRegion:region animated:YES];
这也很好用。点击表格行将缩放至此位置的地图图钉并将其居中。
我只是无法让触发注释引脚标注的最后一步起作用。
我试过了:
[mapview annotationsInMapRect:mapview.visibleMapRect];
但这不起作用,可见区域中可能仍有 2 或 3 个地图图钉。
我需要做的是让 pin 最靠近中心位置(见上文 - item.latitude / item.longitude)以自动打开它的标注。
代码中的所有内容都已设置并正常工作,并且地图图钉具有在点击时触发的标注,我只需要在最靠近中心位置的图钉自动打开的最后阶段。
有人可以帮忙吗?
我已经尝试过关于 SO 的各种其他建议,但似乎没有一个符合这个要求。
【问题讨论】:
-
您的意思是,当您点击
tableView单元格时,您希望地图缩放到该位置,并且与该位置关联的图钉应显示标注。 -
没错。我有第一个工作。点击 tableview 将缩放到正确的位置。我只需要让最后一部分工作,这样该位置的图钉就会自动显示标注。
标签: ios objective-c mkmapview