2012-07-01 5 views
1

Есть ли способ предотвратить включение аннотации в экземпляре MKMapView. Другими словами, когда пользователь удаляет красный контакт на карте, есть ли способ предотвратить его выделение вывода. Сейчас контактный темнеет при прикосновении ...предотвращение выбора на MKPointAnnotation

Edit: Я использую следующий код, чтобы вернуть MKPinAnnotationView

// To future MKMapView users - Don't forget to set _mapView's delegate 
_mapView.delegate = self; 

_annotation = [[MKPointAnnotation alloc] init]; 

_annotation.coordinate = myLocation; 

[_mapView addAnnotation:_annotation]; 


-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ 

MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:_annotation reuseIdentifier:@"id"]; 
pin.enabled = NO; 

return pin; 
} 

ответ

3

Установите enabled в NO на вашем MKPinAnnotationView, что вы вернетесь из -mapView:viewForAnnotation: метод делегата (если вы его не реализовали, сделайте это).

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    static NSString *annotationIdentifier = @"Annotation"; 
    MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier]; 

    if (!annotationView) { 
     annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationIdentifier]; 
    } 
    else { 
     annotationView.annotation = annotation; 
    } 

    annotationView.enabled = NO; 

    return annotationView; 
} 
+0

ОК, поэтому я реализовал метод делегата, но все еще позволяю мне выбирать контакт ... Я также добавил свой код в viewDidLoad, где я инициализирую штырь в первую очередь. – Apollo

+0

@Derek Установили ли вы делегат карты? –

+0

Большое спасибо. Я не назначил делегата. Я редактировал свой вопрос с правильным исходным кодом. Еще раз спасибо, что вы очень помогли. – Apollo

Смежные вопросы