MKPinAnnotationView: üçten fazla renk mevcut var mı?

oy
39

Elma Docs göre MKPinAnnotationView broşu renk, kırmızı mevcut yeşil ve mor olduğunu. Ayrıca diğer renkleri almak için herhangi bir yolu var mı? Ben docs hiçbir şey bulduk.

Oluştur 26/07/2009 saat 22:32
kaynak kullanıcı
Diğer dillerde...                            


9 cevaplar

oy
81

biraz daha ;)

alt metni http://lionel.gueganton.free.fr/pins/pinGray.pngBurada görüntü açıklama girinBurada görüntü açıklama girin

alt metni http://lionel.gueganton.free.fr/pins/pinOrange.pngBurada görüntü açıklama girinBurada görüntü açıklama girin

Ve orijinal olanlar:

alt metni http://lionel.gueganton.free.fr/pins/pinGreen.png alt metni Burada görüntü açıklama girin

alt metni http://lionel.gueganton.free.fr/pins/pinPurple.png alt metni Burada görüntü açıklama girin

alt metni http://lionel.gueganton.free.fr/pins/pinRed.png alt metni Burada görüntü açıklama girin

Ve kod:

- (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;
}
Cevap 14/01/2010 saat 19:24
kaynak kullanıcı

oy
40

Aşağıdaki görüntüler yarayabilecek:

alt metni alt metni alt metni alt metni

ve kod bunları kullanmak 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];
    }
    // ...
Cevap 26/12/2009 saat 15:09
kaynak kullanıcı

oy
11

Sen kullanabilirsiniz ZSPinAnnotationBelirtilen ile anında açıklama işaretçilerine oluşturmak için UIColor: https://github.com/nnhubbard/ZSPinAnnotation

Cevap 19/01/2012 saat 19:57
kaynak kullanıcı

oy
8

Sevdiğim Yonel en Cevap Eğer özel bir MKAnnotationView oluştururken, el ofset atamak gerekecek kadar ama sadece kafaları. Yonel sağlanan görüntüler için: (bunlardan bir tane gerekmez eğer calloutButton atlayabiliriz)

#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;
}
Cevap 31/05/2010 saat 18:59
kaynak kullanıcı

oy
4

IOS 9 ile pinTintColoreklendiğini MKPinAnnotationViewbir tedarik sağlayan, UIColorpim renk için.

Cevap 14/10/2015 saat 13:29
kaynak kullanıcı

oy
4

Ve burada gölge ve içinde @ 2x boyutu ile pim PSD olduğunu.

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

İstediğiniz renk için bu PSD kullanın :)

Bu PSD için kredi almak. Sadece onu yakaladı http://www.teehanlax.com/downloads/iphone-4-guid-psd-retina-display/ Onlar harika bir iş yapmış!

Cevap 23/12/2011 saat 23:09
kaynak kullanıcı

oy
3

Eğer PIN açılan animasyon kullanıyorsanız yayınlanan çözümlerin hiçbiri% 100 çalışır. Görüldüğü pimi hala (sivri düşme ve dairesel kağıt dalgalanma olan) uçlarının her iki tür ancak ne yazık ki, orijinal pim başı renk bir belirti sağlar çünkü bombardıman çözeltisi çok temiz olması durumunda, pim zıpladığında o haritayı vurur. Bütün pim görüntüsünü değiştirme Yonel çözümü bile haritayı hit önce pim dairesel kağıt dalgalanması ile düşer demektir!

Cevap 30/11/2010 saat 21:39
kaynak kullanıcı

oy
2

Ben bu şekilde çalıştı ve ok gibi görünüyor ...

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

yonel örnek olarak ... tam pimi görüntü kullanılarak

Cevap 18/11/2010 saat 18:00
kaynak kullanıcı

oy
1

büyük olasılıkla daha sonra docs değil değilse, sen mkannotationview kullanabilir ve u olsa isterseniz ur kendi görüntü var

Cevap 26/07/2009 saat 23:19
kaynak kullanıcı

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