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

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

20
задан Nick Toumpelis 22 October 2011 в 09:27
поделиться

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;
}

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

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

EDIT

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

15
ответ дан 30 November 2019 в 01:23
поделиться