2012-08-01 17 views
16

Ahora estoy rellenando una vista de mapa con anotaciones, y también mostrando la ubicación actual del usuario. Con el método viewForAnnotation, anula todas las anotaciones con el pin rojo predeterminado, pero quiero devolver las vistas para las otras anotaciones, pero la ubicación del usuario se mantiene como el blue beacon predeterminado. ¿Hay alguna manera de hacer esto simplemente o tengo que crear una nueva vista de anotación y devolver la correcta dependiendo de la anotación?Cómo detener el método viewForAnnotation para anular la ubicación predeterminada del usuario blue beacon en iOS

Ahora mismo tengo algo como:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    if (annotation.coordinate == locationManager.location.coordinate) { 

return nil; 

    }else { 

    MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Beacon"]; 

    // Button 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    button.frame = CGRectMake(0, 0, 23, 23); 
    annotationView.rightCalloutAccessoryView = button; 


    annotationView.canShowCallout = YES; 

    return annotationView; 
} 
} 

pero no puedo equiparar los dos porque no puedo obtener la propiedad de coordenadas desprenderse del argumento anotación.

¿Alguien sabe alguna solución para esto?

Respuesta

28

Mira la documentación aquí:

http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html

Como se afirma:

Si el objeto en el parámetro anotación es una instancia de la clase MKUserLocation, puede proporcionar una costumbre ver para indicar la ubicación del usuario . Para mostrar la ubicación del usuario utilizando la vista del sistema predeterminada , devuelva nil.

para que pueda añadir un condicional para comprobar esto:

if([annotation isKindOfClass: [MKUserLocation class]]) { 
    return nil; 
} 
+0

lullll im estúpida, muy apreciado, yo estaba tratando todos estos arounds de trabajo estúpidos, pero sí ... –

+0

gracias tanto! Debo aprender a dejar de ser tan nuevo con la documentación de Apple –

Cuestiones relacionadas