Изменить цвет булавки, когда пользователь нажал - PullRequest
3 голосов
/ 18 августа 2011

Я бы поменял цвет с красного на зеленый для аннотации, когда пользовательский пин коснулся дополнения к изменению его заголовка и субтитров.

Я действительно потерян. Я искал, как сделать пользовательский пин-код аннотации, хорошо. Я нашел реализацию метода, когда пользователь касается пальца didSelectAnnotationView, и он работает, когда я нажимаю на аннотацию NSLog(@"Tap") ;, но теперь я не могу изменить контакт, к которому был прикоснут.

Большое спасибо всем за ваш вклад.

Ciao

Ответы [ 3 ]

5 голосов
/ 18 августа 2011

Чтобы установить цвет булавки, используйте свойство MKPinAnnotationView pinColor.

MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] init]
pin.pinColor = MKPinAnnotationColorGreen;

Для пользовательского изображения-аннотации установите свойство изображения как таковое.

UIImage *annImage = [UIImage imageNamed:@"AnnotationIcon.png"];
annView.image = annImage;

Обратите внимание, что свойство MKPinAnnotationView animateDrop не будет работать с пользовательскими изображениями. Хотя есть способ дублировать эту анимацию. См. Как анимировать падение MKAnnotationView?

Обновление Поэтому, в сущности, вы делаете это, если хотите, чтобы вас выбрали с красного на зеленый.

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view {
    view.pinColor = MKPinAnnotationColorGreen;

}

- (MKAnnotationView *)mapView:(MKMapView *)aMapView
            viewForAnnotation:(id)ann {

    NSString *identifier = @"myPin";
    MKPinAnnotationView *annView = (MKPinAnnotationView *)
    [aMapView dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annView == nil) {
        annView= [[[MKPinAnnotationView alloc] initWithAnnotation:ann
                                               reuseIdentifier:identifier]
               autorelease];
    } else {
        annView.annotation = ann;
    }
// you can define the properties here.

return annView;
}
4 голосов
/ 18 августа 2011

В вашем методе установите свойство pinColor вашего MKAnnotationView следующим образом:

annotationView.pinColor = MKPinAnnotationColorRed; // Green or Purple
1 голос
/ 31 января 2013

(пере) посмотрите это:

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view {
    view.pinColor = MKPinAnnotationColorGreen;

}

это MKPinAnnotationView (а не MKAnnotationView ) в параметре

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...