Почему я не могу получить mapkit для отображения собственного изображения булавки аннотации? - PullRequest
1 голос
/ 22 июня 2010

Я подумал, что использовать свое собственное изображение булавки для аннотаций было бы очень просто.

Но я так и не смог заставить его работать, и я понятия не имею, почему!

Я просто использую:

Annotation *anno = [[[Annotation alloc] init] autorelease];
        anno.coordinate = ridesMap.userLocation.location.coordinate;
        anno.title = @"Current Location";
        anno.subtitle = [NSString stringWithFormat:@"%f, %f", anno.coordinate.latitude, anno.coordinate.longitude];

        static NSString *defaultPinID = @"LocationIdentifier";
        MKPinAnnotationView *pinView = (MKPinAnnotationView *)[ridesMap dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if (pinView == nil){
            pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:anno reuseIdentifier:defaultPinID] autorelease];
        }

        pinView.image = [UIImage imageNamed:@"custom_pin.png"];
        pinView.opaque = NO;
        pinView.canShowCallout = YES;
        pinView.draggable = NO;

        pinView.annotation = anno;
        NSLog(@"Adding current location annotation");

        return pinView;

Я предполагал, что это должно работать, поскольку UIImage - то, чего он хочет, и у меня есть файл custom_pin.png в моем проекте.

Этоникогда не использует мое изображение, а только стандартный красный штифт.Что я тут не так делаю?

1 Ответ

9 голосов
/ 22 июня 2010

Из документов:

Класс MKPinAnnotationView предоставляет конкретный вид аннотации, который отображает значок булавки, подобный значкам, найденным в приложении Карты.

Другими словами, MK Pin AnnotationView будет игнорировать свойство изображения и всегда отображать пин-код.Вместо этого используйте обычный MKAnnotationView.

...