Как добавить больше деталей в MKAnnotation в iOS

Я хочу добавить больше деталей в MKAnnotation, таких как название места, описание, дата, название места. Итак, нам понадобятся четыре строки. Но я обнаружил, что в MKAnnotation можно передать только 2 параметра: заголовок и подзаголовок. Как я могу добавить больше деталей на карту? Помогите, пожалуйста .. Заранее спасибо.


person S.P.    schedule 26.02.2010    source источник
comment
Я пробовал добавлять детали к субтитрам .. Но они отображались в одной строке .. Как я могу показать детали в нескольких строках   -  person S.P.    schedule 26.02.2010


Ответы (1)


Взгляните на создание пользовательского 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;
}

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

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

ИЗМЕНИТЬ

На самом деле я только что нашел новый пример карт на apple dev site ... имеет весь исходный код, который вам нужно пройти. Они также используют пользовательский MKAnnotationView под названием WeatherAnnotationView

person Ryan Ferretti    schedule 26.02.2010
comment
спасибо за твой ответ. Могу ли я добавить детали в пузырек по умолчанию в желаемом формате, например, с новой строкой? Я попытался добавить UIlabel в rightCalloutAccessoryView из MKPinAnnotationView. Но это не очень приятно. Заранее спасибо - person S.P.; 27.02.2010
comment
Я бы не стал делать это так, как вы это делаете ... У Apple есть аннотации настройки, поэтому их можно расширить с помощью класса MKAnnotationView. Попытка переопределить rightCalloutAccessoryView так, как вы это делаете, - не лучший способ сделать это ... вы боретесь с фреймворком, и это дает вам странные результаты. Если вам нужна персонализированная аннотация, лучше всего это сделать так, как я описал. - person Ryan Ferretti; 27.02.2010
comment
в учебнике изменяется только изображение аннотации ... это в значительной степени однострочный - person MJB; 21.05.2012
comment
Есть ли на это быстрый ответ? - person ; 01.08.2016
comment
@ S.P. см. эту ссылку stackoverflow.com/questions/5831382/ - person balkaran singh; 09.09.2016