2010-05-19 4 views
1

J'ai un certain nombre d'annotations sur ma carte, en plus de l'emplacement actuel des utilisateurs. Cela fonctionne correctement, sauf que la couleur par défaut pour l'emplacement actuel des utilisateurs est la même que pour toutes les autres annotations. Je voudrais que le pin soit vert pour l'emplacement actuel de l'utilisateur afin qu'il soit identifiable de manière unique à partir des autres broches. Comment puis-je faire cela?Carte iPhone: Emplacement des utilisateurs distinguant des autres broches

Bellow est la méthode que je me sers (je ne peux pas trouver un moyen de déterminer quelle annotation sont les utilisateurs de l'emplacement actuel):

- (MKAnnotationView *)mapView:(MKMapView *)mapViewLocal viewForAnnotation:(id <MKAnnotation>)annotation { 
    static NSString *identifier = @"Pin"; 
    MKPinAnnotationView *pinView = (MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier]; 

    if (pinView == nil) 
    { 
     pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier] autorelease]; 
     pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
     pinView.animatesDrop = YES; 
     pinView.canShowCallout = YES; 
    } 
    else 
    { 
     pinView.annotation = annotation; 
    } 

    return pinView; 
}

Répondre

3

Si vous utilisez type standard MKUserLocation pour l'emplacement de l'utilisateur vous peut vérifier le type d'annotation s'il est le même:

... 
if ([annotation isKindOfClass:[MKUserLocation class]]){ 
// This is annotation for user location 
} 
Questions connexes