2015-02-19 4 views
0

Преамбулаудалить информацию кнопки выбора карты Аннотация Название

я реализовал аннотацию карту с помощью MKMapView и MapAnnotation. При нажатии на заголовок появляется изображение, изображенное на следующем изображении.

map annotation title

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

// VENUE 1 PIN. 

CLLocationCoordinate2D venue1Location = CLLocationCoordinate2DMake(-27.5, 153.5); 

MapAnnotation *venue1Pin = [[MapAnnotation alloc] initWithTitle:@"1 ONE ST" Location:venue1Location]; 

ВИД ДЛЯ АННОТАЦИЯ DeleGate МЕТОД:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 
if ([annotation isKindOfClass:[MapAnnotation class]]) 
{ 
    MapAnnotation *venueLocationAnnotation = (MapAnnotation *)annotation; 

    MKAnnotationView *venueLocationAnnotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"customAnnotation"]; 

    venueLocationAnnotationView.rightCalloutAccessoryView.hidden = YES; 

    if (venueLocationAnnotationView == nil) 

     venueLocationAnnotationView = venueLocationAnnotation.annotationView; 

    else 

     venueLocationAnnotationView.annotation = annotation; 


     return venueLocationAnnotationView; 

} 
else 
{ 
    return nil; 
} 

}

ВОПРОС

Как удалить информацию из вышеупомянутого названия названия аннотации карты?

+1

Пожалуйста, покажите ваш метод viewForAnnotation делегата. – Anna

+0

Пожалуйста, см. Выше @Anna – arman

+0

Я внедрил сайтLocationAnnotationView.rightCalloutAccessoryView.hidden = YES; метод в методе делегата и пользовательский класс аннотации. – arman

ответ

1
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil]; 
annotationView.canShowCallout = YES; 

annotationView.rightCalloutAccessoryView.hidden=YES; 

return annotationView; 
} 
+0

Я внедрил ваше предложение. Кнопка «i» не исчезает. – arman

+1

По умолчанию, rightCalloutAccessoryView равен нулю, когда создается новый MKPinAnnotationView, поэтому установка скрытого свойства ничего не делает (поскольку rCAV равен нулю). Только так, как показывает кнопка, если OP устанавливает значение rCAV на что-то, в этом случае они должны просто не устанавливать его для начала. – Anna

1
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
if ([annotation isKindOfClass:[MKPointAnnotation class]]) 
{ 
    MKPinAnnotationView *pinView = (MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@"yourPinIdentifier"]; 
    if (!pinView) 
    { 
     pinView.rightCalloutAccessoryView.hidden=YES; 
     pinView.animatesDrop = YES; 
     pinView.canShowCallout = YES; 
    } 

    return pinView; 
} 
} 
+0

Я внедрил ваше предложение. Кнопка «i» не исчезает. – arman

+1

По умолчанию, rightCalloutAccessoryView равен нулю, когда создается новый MKPinAnnotationView, поэтому установка скрытого свойства ничего не делает (поскольку rCAV равен нулю). Кроме того, код внутри блока 'if (! PinView)' ничего не будет делать, потому что этот блок выполняется только в том случае, если pinView равен нулю (а установление свойств на объекте nil не влияет). – Anna

2

Вы можете использовать следующее заявление:

Вы должны реализовать следующий метод делегата для этого:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{ 
     ... 
     venue1Pin.rightCalloutAccessoryView = nil; 
     ... 
    } 
+0

Я внедрил ваше предложение. Кнопка «i» не исчезает. – arman

+0

@arman вы внедрили viewForAnnotation: delegate method? – Yuvrajsinh

+0

Да. Я внедрил MKMapView и настроил все соответствующие LOC. Вид аннотации карты настроен на пользовательский класс w/images и т. Д. Изображения/заголовки изменяются в соответствии с различными вводами, которые я делаю. – arman

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