Σύμφωνα με τα έγγραφα της Apple, το χρώμα καρφίτσα MKPinAnnotationView είναι διαθέσιμο σε κόκκινο, πράσινο και μοβ. Υπάρχει κάποιος τρόπος για να πάρετε άλλα χρώματα επίσης εκεί; Έχω βρεθεί τίποτε στα έγγραφα.
MKPinAnnotationView: Υπάρχουν περισσότερα από τρία χρώματα διαθέσιμα;
λίγο ακόμα ;)
alt κείμενο http://lionel.gueganton.free.fr/pins/pinGray.png

alt κείμενο http://lionel.gueganton.free.fr/pins/pinOrange.png

Και οι αρχικές:
alt κείμενο http://lionel.gueganton.free.fr/pins/pinGreen.png

alt κείμενο http://lionel.gueganton.free.fr/pins/pinPurple.png

alt κείμενο http://lionel.gueganton.free.fr/pins/pinRed.png

Και ο κώδικας:
- (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;
}
Μπορείτε να βρείτε τις ακόλουθες εικόνες χρήσιμο:

και τον κωδικό για να τα χρησιμοποιήσετε σε 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];
}
// ...
Θα μπορούσατε να χρησιμοποιήσετε ZSPinAnnotationγια να δημιουργήσετε καρφίτσες σχολιασμό σχετικά με την πετάξει με ένα καθορισμένο UIColor: https://github.com/nnhubbard/ZSPinAnnotation
Μου αρέσει Απάντηση Yonel του , αλλά μόνο ένα heads up, όταν δημιουργείτε ένα προσαρμοσμένο MKAnnotationView, θα πρέπει να ορίσετε χειροκίνητα τη μετατόπιση. Για τις εικόνες Yonel παρέχονται: (μπορείτε να αφήσετε την ουσία calloutButton αν δεν χρειάζεστε ένα από αυτά)
#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;
}
Με το iOS 9, pinTintColorέχει προστεθεί MKPinAnnotationView, επιτρέποντάς σας να παρέχει μια UIColorγια το χρώμα καρφίτσα.
Και εδώ είναι η PSD για την καρφίτσα με σκιά και @ 2x μέγεθός του.
http://dl.dropbox.com/u/5622711/ios-pin.psd
Χρησιμοποιήστε αυτό το PSD για κάθε χρώμα που θέλετε :)
Παίρνω καμία πίστωση για αυτό το PSD. Απλά το άρπαξε από http://www.teehanlax.com/downloads/iphone-4-guid-psd-retina-display/ Έχουν κάνει εξαιρετική δουλειά!
Καμία από τις αναρτήσει λύσεις λειτουργεί 100%, αν χρησιμοποιείτε το animation καρφίτσα πτώση. λύση κανονιοβολισμός είναι πολύ πετυχημένος, διότι επιτρέπει την καρφίτσα για να εξακολουθούν να έχουν και τα δύο είδη των άκρων (το αιχμηρό σημείο όπου πέφτει και το ένα με το κυκλικό κυματισμός χαρτί), αλλά, δυστυχώς, μια γεύση από το αρχικό χρώμα το κεφάλι καρφίτσας μπορεί να δει κανείς όταν οι αναπηδήσεις pin ως χτυπά το χάρτη. λύση yonel για την αντικατάσταση του ολόκληρο το pin εικόνα σημαίνει ότι η καρφίτσα πέφτει με την εγκύκλιο κυματισμός χαρτί προτού να χτυπήσει ακόμη και τον χάρτη!
Δοκίμασα αυτόν τον τρόπο και φαίνεται να είναι εντάξει ...
UIImage * image = [UIImage imageNamed:@"blue_pin.png"];
UIImageView *imageView = [[[UIImageView alloc] initWithImage:image]
autorelease];
[annotationView addSubview:imageView];
annotationView = nil;
χρησιμοποιώντας την πλήρη καρφίτσα εικόνα ... ως yonel παράδειγμα
Αν δεν δεν είναι τα έγγραφα τότε πιθανότατα, μπορείτε να χρησιμοποιήσετε mkannotationview και έχουν τη δική ur εικόνα αν u θέλουν όμως













