MapView аннотация indexPath? - PullRequest
5 голосов
/ 26 мая 2011

Есть ли способ (или любой другой способ), которым вы можете получить «путь индекса» аннотации внутри метода:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation

Что я хочу сделать, это получить что-то внутри массива в соответствии с аннотацией. Один из методов, которые я хочу скопировать, - это - tableView:cellForRowAtIndexPath: и использование «indexPath».

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

Ответы [ 2 ]

4 голосов
/ 26 мая 2011
NSUInteger index = [mapView.annotations indexOfObject:annotation];

Поскольку базовый массив является изменяемым, обратите внимание, что index может измениться. Похоже, это самая близкая indexPath информация, которую вы можете получить.

0 голосов
/ 03 января 2013

Чтобы ответить на мой собственный вопрос (вот как это работает для меня):

Я создал экземпляр в пользовательской аннотации и перенес туда данные, затем внутри - mapView:viewForAnnotation: (я использовал настраиваемый pinView). Я импортировал и создал экземпляр своей CustomAnnotation и получил оттуда данные.

[customAnnotation setSomething: data];
- mapView:viewForAnnotation:
{
    pinView = [[[CustomPinView alloc] initWithAnnotation: annotation reuseIdentifier: PinIdentifier] autorelease];
}
- initWithAnnotation:reuseIdentifier:
{
    CustomAnnotation *customAnnotation = (CustomAnnotation *)annotation;

    [customAnnotation something];
}

Излишне для меня, но это делает работу.

...