Установите leftCalloutAccessoryView
в вашем viewForAnnotation:
методе Карты. LeftCallout - это UIView, так что вы можете поместить туда что угодно. Пример кода может выглядеть следующим образом:
MKAnnotationView *av = [[[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:@"ReuseMe"] autorelease];
[av setCanShowCallout:YES];
UIImageView *sfIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SFIcon.png"]];
av.leftCalloutAccessoryView = sfIconView;
[sfIconView release];
Просмотрите демонстрационный код MapCallouts от Apple. Он делает то, что вы хотите.
ОБНОВЛЕНИЕ НА ОСНОВЕ КОММЕНТАРИИ: чтобы заменить изображение, просто вставьте новое изображение в initWithImage. Вы могли бы иметь строку что-то вроде
UIImageView * sfIconView = [[UIImageView alloc] initWithImage: [UIImage imageNamed: [myArrayOfImages objectAtIndex: myIndexVariable]];
Вы можете даже изменить рефакторинг строк, которые начинаются с UIImageView
вплоть до [sfIconView
и таким образом передаются в изображении. Код для viewForAnnotation:
вызывается один раз для каждой аннотации (точно так же, как ячейки в UITableView).