Selon la documentation Apple, la couleur des broches de MKPinAnnotationView est disponible en rouge, vert et violet. Est-il possible d'obtenir d'autres couleurs aussi? Je n'ai rien trouvé dans la documentation.
Réponses
Trop de publicités?Vous pourriez trouver les images suivantes utiles:
et le code pour les utiliser dans viewForAnnotation :
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation
{
// ... get the annotation delegate and allocate the MKAnnotationView (annView)
if ([annotationDelegate.type localizedCaseInsensitiveCompare:@"NeedsBluePin"] == NSOrderedSame)
{
UIImage * image = [UIImage imageNamed:@"blue_pin.png"];
UIImageView *imageView = [[[UIImageView alloc] initWithImage:image] autorelease];
[annView addSubview:imageView];
}
// ...
Vous pouvez utiliser ZSPinAnnotation
pour créer des repères d'annotation à la volée avec un UIColor
spécifié: https://github.com/nnhubbard/ZSPinAnnotation
J'aime bien la réponse de Yonel, mais juste un avertissement , lorsque vous créez un MKAnnotationView personnalisé, vous devez attribuer manuellement le décalage. Pour les images fournies par Yonel: (vous pouvez omettre la légendeButton, si vous n'en avez pas besoin)
#pragma mark MKMapViewDelegate
- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if(![annotation isKindOfClass:[MyAnnotation class]]) // Don't mess user location
return nil;
MKAnnotationView *annotationView = [aMapView dequeueReusableAnnotationViewWithIdentifier:@"spot"];
if(!annotationView)
{
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"spot"];
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[(UIButton *)annotationView.rightCalloutAccessoryView addTarget:self action:@selector(openSpot:) forControlEvents:UIControlEventTouchUpInside];
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
annotationView.centerOffset = CGPointMake(7,-15);
annotationView.calloutOffset = CGPointMake(-8,0);
}
// Setup annotation view
annotationView.image = [UIImage imageNamed:@"pinYellow.png"]; // Or whatever
return annotationView;
}
Ni des solutions de travail à 100% si vous êtes en utilisant le code pin drop animation. Canonnade de la solution est très soignée, car elle permet à la broche pour encore deux sortes d'extrémités (la pointe en cas de chute et celui avec le papier circulaire ondulation) mais malheureusement un aperçu de l'original de la tête d'épingle de couleur peut être vu quand la broche rebondit comme il frappe la carte. yonel de la solution de remplacement de l'ensemble de la broche de l'image de la pin tombe avec la circulaire du papier ondulation avant de frapper la carte!