如何在MKAnnotations上显示MKOverlay?
我正在尝试使用MKOverlay
(特别是MKPolyline
)在地图上显示路线。 但是,我需要将路线显示在我现有的针脚上(自定义MKAnnotationView
)。 有没有一种好方法可以将MKPolyline
放到引脚上方?
研究注释图层的zOrder
属性可能很有用。 在超级视图的层次结构中向后发送注释可能会帮助您达到所需的效果。 可能需要在mapView:didAddAnnotationViews:
delegate方法中更改注释z轴位置。
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
annotationView.layer.zPosition = x;
}
我已经处理了MKPolyline
已经有MKPolyline
,我知道iOS 8中的事情发生了很大的变化,但是在绘制时可能会直接操纵多段线的z位置。
UPDATE
当您将MKOverlay
添加到地图时,从iOS 7.0+开始,使用addOverlay:level:
方法。 这允许您指定叠加层的z位置。 由MKOverlayLevels
定义的覆盖最高z位置MKOverlayLevels
是MKOverlayLevelAboveLabels
:
将叠加层放置在地图标签,盾牌或兴趣点图标上方,但低于建筑物的注释和3D投影。
不幸的是,正如上面的文档中所述,地图不支持在注释上方放置重叠。 可能的解决方案可能是将注释添加到单独的MKOverlay
对象,然后使用insertOverlay:aboveOverlay:
将其他覆盖图(包含路径)添加到地图insertOverlay:aboveOverlay: