iPhone разные картинки для разных выносок - PullRequest
0 голосов
/ 14 марта 2011

Я разрабатываю приложение для iphone, которое занимается картами.У меня много аннотаций.Мне нужно загружать разные изображения в выноску (вид слева) для каждой из этих аннотаций.Может кто-нибудь, пожалуйста, скажите мне, как это сделать.Пользователь динамически добавляет аннотации, когда это необходимо, и выбирает изображение из галереи, чтобы добавить его к этой конкретной выноске аннотации.Я могу добавлять изображения в выноски.но не в состоянии дифференцировать его для разных аннотаций

1 Ответ

0 голосов
/ 14 марта 2011

Установите 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).

...