Как добавить больше деталей в MKAnnotation в iOS - PullRequest
20 голосов
/ 26 февраля 2010

Я хочу добавить больше подробностей в MKAnnotation, таких как название места, описание, дата, название места. Таким образом, это будет четыре строки, которые необходимы. Но я обнаружил, что только 2 параметра могут быть переданы в MKAnnotation, которые являются title и subtitle. Как я могу добавить больше деталей на карту? Пожалуйста, помогите мне .. Спасибо заранее.

1 Ответ

15 голосов
/ 26 февраля 2010

Взгляните на создание пользовательского MKAnnotationView объекта ... это в основном UIView, который предназначен для аннотаций карты. В этом объекте вы можете иметь 4 пользовательских ярлыка.

В вашем классе MKMapViewDelegate вы реализуете метод viewForAnnotation:

- (CustomMapAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    CustomMapAnnotationView *annotationView = nil;

    // determine the type of annotation, and produce the correct type of annotation view for it.
    CustomMapAnnotation* myAnnotation = (CustomMapAnnotation *)annotation;

    NSString* identifier = @"CustomMapAnnotation";
    CustomMapAnnotationView *newAnnotationView = (CustomMapAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:identifier];

    if(nil == newAnnotationView) {
        newAnnotationView = [[[CustomMapAnnotationView alloc] initWithAnnotation:myAnnotation reuseIdentifier:identifier] autorelease];
    }

    annotationView = newAnnotationView;
    [annotationView setEnabled:YES];
    [annotationView setCanShowCallout:YES];

    return annotationView;
}

И это будет отображать ваш пользовательский вид везде, где у вас есть аннотация ... если вы хотите пошаговое руководство, посмотрите это видео .

надеюсь, это поможет

EDIT

Я на самом деле только что нашел новый Пример карты на сайте Apple Dev ... имеет весь исходный код, который вам нужно пройти. Они также используют пользовательский MKAnnotationView под названием WeatherAnnotationView

...