Как мне показать MKOverlay выше MKAnnotations?
Я пытаюсь использовать MKOverlay
(в частности, MKPolyline
) показать маршрут на карте. Тем не менее, мне нужен маршрут, чтобы показать над моими существующими булавками MKAnnotationView
с). Есть ли хороший способ принести MKPolyline
впереди над булавками?
1 ответ
Может быть полезно исследовать слой аннотаций 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-позиций для наложения, как определено MKOverlayLevels
является MKOverlayLevelAboveLabels
:
Поместите наложение над метками, щитами или значками достопримечательностей, но под аннотациями и трехмерными проекциями зданий.
К сожалению, как упоминалось в документации выше, карта не поддерживает размещение наложений над аннотациями. Возможным решением может быть добавление аннотаций к отдельному MKOverlay
объект, а затем добавить другое наложение (с путем) на карту, используя insertOverlay:aboveOverlay:
,