Ich habe ein NSMutableArray von Objekten eingerichtet, die von einer Klasse abgeleitet sind, die dem MKAnnotation-Protokoll entspricht. Ich habe Setup Setup-Titel und Untertitel für die Annotation und haben sie erfolgreich an den MKMapView mit hinzugefügt:MKMapView, animateDrop?
[[self customMapView] addAnnotations:locationArray];
Was ich will jetzt tun animieren die Stifte fallen, zunächst dachte ich, ich könnte das tun, mit Option1 Mit diesem funktioniert alles, aber die Pins machen keinen animierten Drop.
// Option1
// WORKS FOR: pinColor YES, animatesDrop NO, LABEL YES
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
for(MKPinAnnotationView *eachView in views) {
[eachView setAnimatesDrop:YES];
[eachView setPinColor:MKPinAnnotationColorPurple];
}
}
Meine nächste Vermutung Option2 zu versuchen war, scheint dies zu funktionieren sehr gut, aber ich habe zwei Fragen. Der Titel und der Untertitel werden nicht angezeigt, mein benutzerdefiniertes Anmerkungsobjekt wird übergeben (ich kann es im Debugger sehen), aber die enthaltenen Informationen machen es nicht für den neuen pin
verfügbar. Zweitens erzeugt dies eine neue Reihe von MKAnnotationViews, was passiert mit den alten, gibt es Probleme mit Speicherlecks?
// Option2
//FOR: pinColor YES, animatesDrop YES, LABEL NO
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation {
MKPinAnnotationView *pin = (MKPinAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier: @"annotation_ID"];
if (pin == nil) {
pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"annotation_ID"] autorelease];
} else {
pin.annotation = annotation;
}
pin.pinColor = MKPinAnnotationColorRed;
pin.animatesDrop = YES;
return pin;
}
EDIT: ich die fehlenden Titel & Subtitle gelöst durch pin.canShowCallout = YES;
In Ihrer Option 2-Code, wenn der Stift erstellt wird, wird es nicht die Anmerkung gesetzt haben. Ich würde das "else" entfernen und die pin.annotation = Annotationslinie einrücken, so dass es immer gesetzt wird. – theLastNightTrain