7

我正在尝试使用MKOverlay(特别是MKPolyline)在地图上显示路线。但是,我需要将路线显示在我现有的引脚(自定义MKAnnotationView)上方。有没有一种好方法可以将MKPolyline引脚放在引脚上方?

4

1 回答 1

5

zOrder调查注记图层的属性可能很有用。在您的超级视图的层次结构中向后发送注释可以帮助您实现所需的效果。更改注释 z 轴位置可能应该在mapView:didAddAnnotationViews:委托方法中完成。

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
    annotationView.layer.zPosition = x;
}

自从我处理 以来已经有一段时间了MKPolyline,而且我知道 iOS 8 中的情况发生了很大变化,但是您可以在绘制折线时直接操纵折线的 z 位置。


更新
当您将您的添加MKOverlay到地图时,从 iOS 7.0+ 开始,使用该addOverlay:level:方法。这允许您指定叠加层的 z 位置。由 定义的叠加层的最高 z 位置之一MKOverlayLevelsMKOverlayLevelAboveLabels

将叠加层放置在地图标签、盾牌或兴趣点图标上方,但在建筑物的注释和 3D 投影下方。

不幸的是,如上面的文档中所述,地图不支持在注释上方放置叠加层。一种可能的解决方案可能是将注释添加到单独的MKOverlay对象,然后使用insertOverlay:aboveOverlay:.

于 2015-10-27T23:05:05.987 回答