如何在MKAnnotations上方显示MKOverlay?
我正在尝试使用MKOverlay
(特别是MKPolyline
)在地图上显示路线。 但是,我需要显示在我现有的引脚(自定义MKAnnotationView
)上方的路线。 有没有一种好方法将MKPolyline
放在引脚上方?
调查注解图层的zOrder
属性可能很有用。 在超级视图的层次结构中向后发送注释可以帮助您达到所需的效果。 更改注释的z轴位置应该在mapView:didAddAnnotationViews:
delegate方法内完成。
- (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
:
将叠加层放置在地图标签,盾牌或兴趣点图标上方,但低于build筑物的注释和3D投影。
不幸的是,正如上面的文档中所提到的,地图不支持在注释上面放置重叠。 可能的解决scheme可能是将注释添加到单独的MKOverlay
对象,然后使用insertOverlay:aboveOverlay:
将以上path添加到地图insertOverlay:aboveOverlay: