如何在MKAnnotations之上显示MKOverlay?

时间:2015-10-20 15:34:52

标签: ios mapkit mkannotation mkoverlay mapkitannotation

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

1 个答案:

答案 0 :(得分:4)

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

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

自从我处理MKPolyline以来已经有一段时间了,我知道iOS 8中的内容发生了很大的变化,但您可以直接操作折线' sz你正在绘制它的位置。

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

  

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

不幸的是,正如上面的文档中所提到的,地图不支持在注释上方放置叠加层。可能的解决方案可能是将注释添加到单独的MKOverlay对象,然后使用insertOverlay:aboveOverlay:将其他叠加(使用路径)添加到地图。

相关问题