MKPinAnnotationView: Υπάρχουν περισσότερα από τρία χρώματα διαθέσιμα;

ψήφοι
39

Σύμφωνα με τα έγγραφα της Apple, το χρώμα καρφίτσα MKPinAnnotationView είναι διαθέσιμο σε κόκκινο, πράσινο και μοβ. Υπάρχει κάποιος τρόπος για να πάρετε άλλα χρώματα επίσης εκεί; Έχω βρεθεί τίποτε στα έγγραφα.

Δημοσιεύθηκε 26/07/2009 στις 22:32
πηγή χρήστη
Σε άλλες γλώσσες...                            


9 απαντήσεις

ψήφοι
81

λίγο ακόμα ;)

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 κείμενο εισάγετε περιγραφή της εικόνας εδώ

alt κείμενο http://lionel.gueganton.free.fr/pins/pinPurple.png alt κείμενο εισάγετε περιγραφή της εικόνας εδώ

alt κείμενο http://lionel.gueganton.free.fr/pins/pinRed.png alt κείμενο εισάγετε περιγραφή της εικόνας εδώ

Και ο κώδικας:

- (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;
}
Απαντήθηκε 14/01/2010 στις 19:24
πηγή χρήστη

ψήφοι
40

Μπορείτε να βρείτε τις ακόλουθες εικόνες χρήσιμο:

alt κείμενο alt κείμενο alt κείμενο alt κείμενο

και τον κωδικό για να τα χρησιμοποιήσετε σε 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];
    }
    // ...
Απαντήθηκε 26/12/2009 στις 15:09
πηγή χρήστη

ψήφοι
11

Θα μπορούσατε να χρησιμοποιήσετε ZSPinAnnotationγια να δημιουργήσετε καρφίτσες σχολιασμό σχετικά με την πετάξει με ένα καθορισμένο UIColor: https://github.com/nnhubbard/ZSPinAnnotation

Απαντήθηκε 19/01/2012 στις 19:57
πηγή χρήστη

ψήφοι
8

Μου αρέσει Απάντηση 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;
}
Απαντήθηκε 31/05/2010 στις 18:59
πηγή χρήστη

ψήφοι
4

Με το iOS 9, pinTintColorέχει προστεθεί MKPinAnnotationView, επιτρέποντάς σας να παρέχει μια UIColorγια το χρώμα καρφίτσα.

Απαντήθηκε 14/10/2015 στις 13:29
πηγή χρήστη

ψήφοι
4

Και εδώ είναι η PSD για την καρφίτσα με σκιά και @ 2x μέγεθός του.

http://dl.dropbox.com/u/5622711/ios-pin.psd

Χρησιμοποιήστε αυτό το PSD για κάθε χρώμα που θέλετε :)

Παίρνω καμία πίστωση για αυτό το PSD. Απλά το άρπαξε από http://www.teehanlax.com/downloads/iphone-4-guid-psd-retina-display/ Έχουν κάνει εξαιρετική δουλειά!

Απαντήθηκε 23/12/2011 στις 23:09
πηγή χρήστη

ψήφοι
3

Καμία από τις αναρτήσει λύσεις λειτουργεί 100%, αν χρησιμοποιείτε το animation καρφίτσα πτώση. λύση κανονιοβολισμός είναι πολύ πετυχημένος, διότι επιτρέπει την καρφίτσα για να εξακολουθούν να έχουν και τα δύο είδη των άκρων (το αιχμηρό σημείο όπου πέφτει και το ένα με το κυκλικό κυματισμός χαρτί), αλλά, δυστυχώς, μια γεύση από το αρχικό χρώμα το κεφάλι καρφίτσας μπορεί να δει κανείς όταν οι αναπηδήσεις pin ως χτυπά το χάρτη. λύση yonel για την αντικατάσταση του ολόκληρο το pin εικόνα σημαίνει ότι η καρφίτσα πέφτει με την εγκύκλιο κυματισμός χαρτί προτού να χτυπήσει ακόμη και τον χάρτη!

Απαντήθηκε 30/11/2010 στις 21:39
πηγή χρήστη

ψήφοι
2

Δοκίμασα αυτόν τον τρόπο και φαίνεται να είναι εντάξει ...

UIImage * image = [UIImage imageNamed:@"blue_pin.png"];
        UIImageView *imageView = [[[UIImageView alloc] initWithImage:image]
                                 autorelease];
        [annotationView addSubview:imageView];
        annotationView = nil;

χρησιμοποιώντας την πλήρη καρφίτσα εικόνα ... ως yonel παράδειγμα

Απαντήθηκε 18/11/2010 στις 18:00
πηγή χρήστη

ψήφοι
1

Αν δεν δεν είναι τα έγγραφα τότε πιθανότατα, μπορείτε να χρησιμοποιήσετε mkannotationview και έχουν τη δική ur εικόνα αν u θέλουν όμως

Απαντήθηκε 26/07/2009 στις 23:19
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more