Mehrere annotation-callouts anzeigen in MKMapView
Ist es möglich, öffnen Sie gleichzeitig mehr als eine Legende?
Code:
- (void)mapViewDidFinishLoadingMap:(MKMapView *)theMapView {
for (id<MKAnnotation> currentAnnotation in theMapView.annotations) {
[theMapView selectAnnotation:currentAnnotation animated:YES];
}
}
öffnet nur eine Legende.
- Warum mehr als 1? Der Bildschirm ist nicht groß genug, und das verwirrt die user.
- Das ist richtig, aber wenn es nur zwei-drei pins auf der Karte mit genügend großen Abstand zwischen Ihnen – Benutzer würde nicht verwechselt werden. Und, ja, das ist mein Kunde ' s-Anforderung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass es eine Methode gibt, auf
MKMapView
(nichtMKAnnotationView
) für die Auswahl einer annotation programmgesteuert, das funktioniert mehr oder weniger wie man es erwarten würde:Jedoch automatisch deselektiert alle derzeit annotation zur gleichen Zeit, so dass dies nicht Ihr problem lösen.
Seltsam, es ist eine Eigenschaft, die auf
MKMapView
dass scheint ein array der gegenwärtig ausgewählten Anmerkungen:Aber die Dokumentation zu dieser Methode sagt:
Dachte nur das könnte von Interesse sein.
Einer strengen API-Sicht, scheint dies nicht möglich.
Den
-(void)setSelected:(BOOL)selected animated:(BOOL)animated
- Wahlschalter aufMKAnnotationView
Staaten : "Sie sollten diese Methode nicht direkt aufrufen. Ein MKMapView-Objekt ruft diese Methode in Reaktion auf Benutzer-Interaktionen, die mit der annotation.", so dass die zugrunde liegende Botschaft ist, dass die Auswahl der annotationView Instanzen, die unter der vollen Verantwortung des Benutzers Auswahl, und die Benutzer können nur wählen Sie eine von Ihnen zu einer Zeit, Sie sollten nicht in der Lage zu bekommen mehrere von Ihnen zur selben Zeit ausgewählt.Selbst wenn die Dokumentation sagt, dass, sollten diese Methode nicht direkt aufrufen, haben Sie versucht, um es aufzurufen sowieso mit
setSelected:YES
auf mehrereMKAnnotationView
Instanzen zu sehen, was es gibt ?DIE SAUBERE Art und WEISE, ich WÜRDE ES TUN : (nicht getestet, mich jedoch)
Wenn Sie es so machen, Sie machen können Sie erscheinen mehrere callout-Blase in der gleichen Zeit und bekommen etwas, das würde wie folgt Aussehen :
alt-text http://a1.phobos.apple.com/us/r1000/048/Purple/2b/b2/ec/mzl.ttcsrlee.480x480-75.jpg