Mam zestaw NSMutableArray obiektów pochodnych od klasy, która jest zgodna z protokołem MKAnnotation. Mam konfiguracji tytuł konfiguracji i napisów dla adnotacji i pomyślnie dodane do MKMapView używając:MKMapView, animateDrop?
[[self customMapView] addAnnotations:locationArray];
Co chcę zrobić teraz jest animowanie szpilki spada, początkowo myślałem, że mógłbym zrobić z Opcja 1 , używając tego wszystkiego działa, ale szpilki nie robią animowanej kropli.
// 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];
}
}
Mój następny przypuszczenie było spróbować opcja2, to wydaje się działać bardzo dobrze, ale mam dwie kwestie. Tytuł i podtytuł nie są wyświetlane, mój niestandardowy obiekt adnotacji jest przekazywany (widzę go w debugerze), ale zawarte w nim informacje nie trafiają do nowego pin
. Po drugie tworzy to nowy zestaw MKAnnotationViews, co dzieje się ze starszymi, czy są problemy z wyciekami pamięci?
// 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: I zostały rozwiązane brakujący tytuł & podtytuł dodając pin.canShowCallout = YES;
W kodzie opcja 2, gdy trzpień jest tworzona nie będzie miał zestaw adnotacji. Usunąłbym "else" i wstawiłam pin.annotation = linię adnotacji, aby zawsze była ustawiona. – theLastNightTrain