Ifølge Apple docs, MKPinAnnotationView PIN farge er tilgjengelig i rødt, grønt og lilla. Er det noen måte å få andre farger også? Jeg har ikke funnet noe i docs.
MKPinAnnotationView: Er det mer enn tre farger tilgjengelig?
litt til ;)
alt tekst http://lionel.gueganton.free.fr/pins/pinGray.png

alt tekst http://lionel.gueganton.free.fr/pins/pinOrange.png

Og den opprinnelige seg:
alt tekst http://lionel.gueganton.free.fr/pins/pinGreen.png

alt tekst http://lionel.gueganton.free.fr/pins/pinPurple.png

alt tekst http://lionel.gueganton.free.fr/pins/pinRed.png

Og koden:
- (MKAnnotationView*)mapView:(MKMapView*)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKPinAnnotationView* anView =[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"test"];
anView.pinColor=MKPinAnnotationColorPurple;
UIImage* image = nil;
// 2.0 is for retina. Use 3.0 for iPhone6+, 1.0 for "classic" res.
UIGraphicsBeginImageContextWithOptions(anView.frame.size, NO, 2.0);
[anView.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData* imgData = UIImagePNGRepresentation(image);
NSString* targetPath = [NSString stringWithFormat:@"%@/%@", [self writablePath], @"thisismypin.png" ];
[imgData writeToFile:targetPath atomically:YES];
return anView;
}
-(NSString*) writablePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return documentsDirectory;
}
Du kan finne disse bildene nyttig:

og koden for å bruke dem i 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];
}
// ...
Du kan bruke ZSPinAnnotationtil å lage kommentar pins på fly med en spesifisert UIColor: https://github.com/nnhubbard/ZSPinAnnotation
Jeg liker Yonel svar , men bare en heads up, når du oppretter en tilpasset MKAnnotationView, må du tildele manuelt forskyvningen. For bildene Yonel følger: (du kan utelate calloutButton ting hvis du ikke trenger en av dem)
#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;
}
Med iOS 9, pinTintColorhar blitt lagt til MKPinAnnotationView, slik at du kan levere en UIColorfor pinnen farge.
Og her er det PSD for stiften med skygge og dens i @ 2x størrelse.
http://dl.dropbox.com/u/5622711/ios-pin.psd
Bruk denne PSD for den fargen du vil :)
Jeg tar ingen kreditt for dette PSD. Jeg bare tok det fra http://www.teehanlax.com/downloads/iphone-4-guid-psd-retina-display/ De har gjort en fantastisk jobb!
Ingen av de postet løsninger fungere 100% hvis du bruker knappenål falle animasjon. Kanonade løsning er meget godt, fordi den gjør det mulig for stiften å fortsatt ha begge typer ender (den skarpe spissen ved fall, og den med den sirkulære papir krusning), men dessverre et glimt av den opprinnelige knappenålshode farge kan sees når pinne spretter som den treffer kartet. yonel løsning for å erstatte hele pinnen bildet betyr pinnen faller med sirkulære papir ringvirkninger før det er selv treffer kartet!
Jeg prøvde på denne måten, og det ser ut til å være ok ...
UIImage * image = [UIImage imageNamed:@"blue_pin.png"];
UIImageView *imageView = [[[UIImageView alloc] initWithImage:image]
autorelease];
[annotationView addSubview:imageView];
annotationView = nil;
ved hjelp av full tappen bilde ... som yonel eksempelet
Hvis det ikke er i docs så mest sannsynlig ikke, kan du bruke mkannotationview og har ur eget bilde hvis u ønsker om













