Установка нескольких булавок в MKMapView и вывод правильной информации в представлении выноски?

У меня есть массив объектов, в которых есть информация для каждой булавки на моей карте. Я могу добавить их с соответствующими координатами на карту, используя [mapView addAnnotions:array];. Но когда дело доходит до выбора вывода, а затем отображения выноски для этого конкретного вывода (используя правильное расположение вывода и правильную информацию из моего массива), я теряюсь. Я также не совсем понимаю, как представления Callout работают для нескольких контактов. Я пытался посмотреть пример кода Apple, но это не очень помогло, и поиск проблемы в Google тоже не помогает.

Простая версия: как вы должны иметь много булавок на карте и различать их, когда они выбираются и когда их вызывают для просмотра выноски?

Редактировать: например, как приложение «Карты» на iPhone работает с отображением нескольких местоположений компаний, и когда вы нажимаете на них, появляется правильное имя и ссылка на указанную компанию.


person James Linnell    schedule 03.08.2012    source источник
comment
Когда вы создаете пин (аннотацию), вы сообщаете ему заголовок и текст подзаголовка. Затем вы добавляете все булавки на карту. Затем, когда вы нажмете на булавку, они отобразят информацию о том, что вы укажете для отображения при создании булавки. Обычно я использую цикл for, чтобы добавить все свои булавки на карту.   -  person Zhang    schedule 03.08.2012


Ответы (1)


попробуйте этот код

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

static NSString *identifier = @"MyLocation";   
if ([annotation isKindOfClass:[MNMyLocation class]]) {

    MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [atmLocatorMap dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annotationView == nil) {
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
    } else {
        annotationView.annotation = annotation;
    }

    annotationView.enabled = YES;
    annotationView.canShowCallout = YES;
    //annotationView.image=[UIImage imageNamed:@"arrest.png"];

    return annotationView;
}

return nil;    

}

person AAV    schedule 03.08.2012
comment
Не могли бы вы объяснить, как включить в это массив с моей информацией? - person James Linnell; 03.08.2012