2009-08-12 17 views
5

Ich zeige einige Symbole (Annotationen) auf einer Karte in meiner App an, indem ich sie in ein NSMutableArray lade und dann das Array hinzufüge. Es funktioniert gut, aber ich habe Probleme, sie in der richtigen Reihenfolge anzuzeigen.Hinzufügen von Anmerkungen zu MKMapView in einer bestimmten Layer-Reihenfolge

Manchmal erscheinen Symbole, die ich zu positionIcons zuletzt hinzugefügt habe, oben; zu anderen Zeiten werden die neuesten unter den älteren angezeigt.

Wie kann ich die Layer-Reihenfolge sicherstellen?

[positionIcons removeAllObjects]; 
[positionIcons insertObject:<someObject> atIndex:0]; 
[mapView addAnnotations:positionIcons]; 

Antwort

3

Sie werden wahrscheinlich -mapView:didAddAnnotationViews: auf Ihrem MKMapViewDelegate implementieren und dann mit ihrer Bestellung über ihre Super Geige, möglicherweise mit Methoden wie -bringSubviewToFront:.

+0

Ich bin ziemlich unwissend in Objective-C (Wie wird die Reihenfolge der überlappende MKAnnotationViews definieren). Ist der Delegat, wo ich die Kartenansicht deklariere? Wie kann ich bei Verwendung von bringSubviewToFront ein Symbol von einem anderen unterscheiden (welche Daten werden an diesem Punkt übertragen)? Gibt es eine Möglichkeit, die Reihenfolge festzulegen, in der ich Symbole einfüge? – BankStrong

+0

Der Delegat ist das Objekt, das Sie in der Eigenschaft 'delegate' der' MKMapView' festhalten. Alles im übergebenen Array ist ein 'MKAnnotationView', dessen 'annotation'-Eigenschaft die Annotation ist, die Sie ursprünglich in das' positionIcons'-Array geschrieben haben. –

Verwandte Themen