2015-10-20 21 views
7

Ich versuche eine MKOverlay (speziell eine MKPolyline) zu verwenden, um eine Route auf der Karte anzuzeigen. Allerdings brauche ich die Route, um über meine vorhandenen Pins (benutzerdefinierte MKAnnotationView s) zu zeigen. Gibt es eine gute Möglichkeit, die MKPolyline über den Pins nach vorne zu bringen?Wie zeige ich MKOverlay über MKAnnotations?

Antwort

4

Es könnte nützlich sein, die Eigenschaft des Annotation Layers zu untersuchen. Wenn Sie die Anmerkungen rückwärts in der Hierarchie Ihrer Superview senden, können Sie den gewünschten Effekt erzielen. Das Ändern der Annotations-Z-Achsenposition sollte wahrscheinlich innerhalb der Delegatenmethode mapView:didAddAnnotationViews: erfolgen.

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

Es ist eine Weile her, dass ich mit MKPolyline beschäftigt habe, und ich weiß, was eine Menge in iOS 8 geändert, aber Sie könnten in der Lage sein, direkt die Polylinie der z-Position zu manipulieren, während Sie es zeichnen.


UPDATE
Wenn Sie Ihre MKOverlay auf der Karte hinzufügen, in iOS 7.0+ starten, verwenden Sie die addOverlay:level: Methode. Damit können Sie die z-Position des Overlays festlegen. Einer der höchsten z-Positionen für das Overlay wie durch MKOverlayLevels definiert ist MKOverlayLevelAboveLabels:

Legen Sie das Overlay oben Karte Etiketten, Schilder oder Point-of-Interest Symbole, aber unter Anmerkungen und 3D-Projektionen von Gebäuden.

Wie in der obigen Dokumentation erwähnt, unterstützt die Karte leider nicht das Platzieren von Overlays über Annotationen. Eine mögliche Lösung könnte darin bestehen, die Anmerkungen einem separaten MKOverlay-Objekt hinzuzufügen und dann die andere Überlagerung (mit dem Pfad) unter Verwendung von insertOverlay:aboveOverlay: zur Karte hinzuzufügen.

+0

zPosition scheint nur die Annotationen relativ zueinander zu beeinflussen - Overlays scheinen immer hinter jeder Annotation zu stehen – bplattenburg

+0

Leider bin ich nicht sicher, ob es möglich ist, die Annotationen in einem Overlay zu erstellen (siehe mein Update)). Es scheint, dass Apple angenommen hat, dass Anmerkungen und Überlagerungen separate Bereiche benötigen. Kann ich fragen, warum Sie den Pfad über den Anmerkungen benötigen? –

+0

Hm, das könnte funktionieren. Vielen Dank. Wahrscheinlich ist es zu diesem Zeitpunkt die Mühe nicht wert. Was ich versuche, ist eine Route und nicht verwandte Pins gleichzeitig zu zeigen, aber die Route ist wichtiger und sollte über die Pins zeigen. – bplattenburg