MKMapView, animateDrop?

J'ai mis un NSMutableArray d'objets dérivés à partir d'une classe qui est conforme à la MKAnnotation protocole. J'ai le programme d'installation le programme d'installation de titre et sous-titre pour l'annotation et l'ai ajouté avec succès à la MKMapView à l'aide de:

[[self customMapView] addAnnotations:locationArray];

Ce que je veux faire maintenant est d'animer les broches à l'abandon, j'ai d'abord pensé que je pouvais le faire avec Option1, à l'aide de ce tout fonctionne, mais les broches ne pas faire une animation de chute.

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

Mon prochain pense essayer Option2, cela semble fonctionner très bien, mais j'ai deux questions. Le titre et les sous-titres ne s'affichent pas, mes annotations personnalisées objet est passé (je peux le voir dans le débogueur), mais l'information qu'il contient est de ne pas en faire dans la nouvelle pin. Deuxièmement, cela crée un nouvel ensemble de MKAnnotationViews, ce qui se passe pour les anciennes, sont là et les problèmes avec des fuites de mémoire?

//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: j'ai résolu le titre manquant & sous-titres en ajoutant pin.canShowCallout = YES;

Dans votre option 2 code, lorsque le code pin est créé, il n'aura pas l'annotation définie. Je voudrais supprimer le "else" et de retrait de la broche.annotation = annotation de ligne, de sorte qu'il obtient toujours ensemble.

OriginalL'auteur fuzzygoat | 2011-01-17