Изображение аннотации заменяется RedPushPin при длительном нажатии на аннотацию - PullRequest
8 голосов
/ 14 февраля 2012

Я создал пользовательскую аннотацию со следующим:

-(MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{
    MKPinAnnotationView *view = nil;
    if (annotation != mapView.userLocation)
    {
        view = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"myAnnotationIdentifier"];
        if (!view) 
            view = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"myAnnotationIdentifier"];

        if (((CustomAnnotation *)annotation).annotationType == 1)
        {
            view.image = [UIImage imageNamed:@"type1.png"];
            view.rightCalloutAccessoryView = nil;
            view.canShowCallout = YES;
        }
        else
        {
            view.image = [UIImage imageNamed:@"type2.png"];
            view.rightCalloutAccessoryView = nil;
            view.canShowCallout = YES;
        }
    }
return view;
}

Проблема: Когда пользователь нажимает и удерживает в течение 2 секунд на любом изображении аннотации (type1 или type2), изображение заменяется наКрасный PushPin (по умолчанию для iPhone MKPinAnnotationView).

Я хочу избежать этой замены.Как я могу это сделать?

Ответы [ 2 ]

23 голосов
/ 14 февраля 2012

Вместо того, чтобы объявлять и создавать MKPinAnnotationView, объявите и создайте простой MKAnnotationView.

MKPinAnnotationView нравится по умолчанию красный штифт, для которого он предназначен.

2 голосов
/ 28 апреля 2012

Используйте didDeselectAnnotationView и didSelectAnnotationView и повторно выберите изображение, как вы сделали: -

view.image = [UIImage imageNamed:@"type2.png"];
...