2011-05-30 36 views
6

Tipik iOS mapkit "pin" i belirli bir görüntüyle değiştirmeye çalışıyorum. , Yöntemin i diğer şeylerin yanı sıra, sahipiOS'ta özel ek açıklama görüntüsü

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 

için

: Ben bu olmuyor tam olarak neden emin değilim bu yüzden kodlama yeniyim, ama burada ben teşebbüs ettik budur Bu, kodun düzgün şekilde derlenmesine rağmen, pinView, pinImage ayarlanmıyor olsa da. Herhangi bir fikir neden olmasın?

+0

Bkz. Http://stackoverflow.com/questions/5373265/custom-mkannotation-image-goes-back-to-default-when-i-attempt-to-drag, http://stackoverflow.com/questions/ 10501341/mkpinannotationview-custom-image-ile-değiştirerek-pin-ile-animasyon-bırak, http://stackoverflow.com/questions/9814988/mkmapview-instead-of-annotation-pin-a-custom-view, vb – Anna

cevap

3

Eğer son satırı değiştirmek yapmanız gereken tek şey:

[pinView addSubview:pinImage]; 

tam örnek: Bu yardımcı olur

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 

    MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"ParkingPin"]; 

    UIImageView *imageView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pin_parking.png"]] autorelease]; 

    annView.animatesDrop = TRUE; 
    annView.canShowCallout = YES; 
    annView.calloutOffset = CGPointMake(-5, 5); 
    [annView addSubview:imageView]; 
    return annView; 
} 

umut!

+3

çalışmıyor. Pimi ve görüntüyü gösterir. – Oliver

3

görüntü annView düğme instand ayarlı olmalı, böyle kullanın:

UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
[button setImage:[UIUtils getStyleImage:@"page_map_accessory_button.png"] forState:UIControlStateNormal]; 
[button setImage:[UIUtils getStyleImage:@"page_map_accessory_button.png"] forState:UIControlStateSelected]; 
[button setImage:[UIUtils getStyleImage:@"page_map_accessory_button.png"] forState:UIControlStateHighlighted]; 
pinView.rightCalloutAccessoryView = button; 
0

Hemen yapın:

annView.image=[UIImage imageNamed:@"imagename.png"]; 
2

Burada göremiyorum cevap, bunu bu olduğunu viewForAnnotation yönteminde bir MKAnnotationView öğesini dequeue veya oluşturun ve aynı zamanda sınıfınızı harita görünümünün bir temsilcisi olarak alın, böylece görünümü almak için bu yöntemi çağırır.

Başka bir yerde ek açıklama görünümleri oluşturduysanız, görüntü özelliğini kullanarak ayarlanan tüm özel görüntüler görüntülenmez ve yalnızca bir iğne görürsünüz.

+0

MKAnnotationView çalışıyor, MKPinAnnotationView yapmayacak. – Jenn

+0

PinAnnotationView, anladığım kadarıyla yalnızca yerleşik pin görüntülerini kullanması gerekiyordu, bu yüzden özel bir görüntü ayarlamayı desteklemeyeceğini düşünmüyorum ... –

1

Sadece "animatesDrop" satırını kodunuzdan silin. Senin için çalışacak.