MKMapView, animateDrop?

Я установил NSMutableArray объектов, производных от класса, который соответствует протоколу MKAnnotation. У меня есть установочный заголовок и подзаголовок для аннотации, и я успешно добавил их в MKMapView, используя:

[[self customMapView] addAnnotations:locationArray];

Теперь я хочу анимировать опускание контактов. Сначала я думал, что смогу сделать это с помощью Option1 , используя это, все работает, но булавки не делают анимированного падения.

// 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];
    }
}

Следующим моим предположением было попробовать Option2 , похоже, это работает очень хорошо, но у меня есть две проблемы. Заголовок и подзаголовок не отображаются, мой пользовательский объект аннотации передается (я вижу его в отладчике), но содержащаяся информация не передается на новый вывод . Во-вторых, создается новый набор MKAnnotationViews, что происходит со старыми, есть ли проблемы с утечками памяти?

// 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;
}

РЕДАКТИРОВАТЬ: Я решил недостающий заголовок и подзаголовок, добавив pin.canShowCallout = YES;

14
задан fuzzygoat 17 January 2011 в 17:01
поделиться