Изменение цвета пин-кода при нажатии пользователем


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

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

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

Чао

3 3

3 ответа:

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

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

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

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;
}

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

annotationView.pinColor = MKPinAnnotationColorRed; // Green or Purple

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

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

}

Это MKPinAnnotationView (а не MKAnnotationView ) в param