Ubicación actual con la anotación personalizada, llamada de salida y el círculo azul exactitud
-
28-09-2019 - |
Pregunta
Después de 2 horas de googlear no pude encontrar una respuesta por lo que este es mi último disparo.
Me gustaría utilizar una anotación personalizada para la ubicación actual del usuario en un MKMapView. Pero también quieren tener el círculo exactitud azul alrededor de él.
Puede hacerse esto?
Si no es así, se puede añadir una llamada de salida al punto azul por defecto con el círculo?
La razón por la que necesito esto se debe a que en mi aplicación, el punto ubicación actual a menudo desaparece bajo otras anotaciones. Así que por eso utilizo un alfiler de color púrpura con una llamada de salida como la ubicación actual.
Aquí está mi código para la anotación:
if ([annotation isKindOfClass:MKUserLocation.class])
{
MKPinAnnotationView *userAnnotationView = (MKPinAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:@"UserLocation"];
if (userAnnotationView == nil) {
userAnnotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"UserLocation"]autorelease];
}
else
userAnnotationView.annotation = annotation;
userAnnotationView.enabled = YES;
userAnnotationView.animatesDrop = NO;
userAnnotationView.pinColor = MKPinAnnotationColorPurple;
userAnnotationView.canShowCallout = YES;
[self performSelector:@selector(openCallout:) withObject:annotation afterDelay:0.01];
return userAnnotationView;
}
Gracias por cualquier consejo. Saludos, Christian
Solución
OK, así que terminé la supresión de la notificación personalizada pero añadiendo una llamada que aparece automáticamente. De esta manera:
mapView.showsUserLocation=TRUE;
mapView.userLocation.title = NSLocalizedString (@"Here am I",@"Here am I" );
[self performSelector:@selector(openCallout:) withObject:mapView.userLocation afterDelay:3.0];
y
- (void)openCallout:(id<MKAnnotation>)annotation {
[mapView selectAnnotation:annotation animated:YES];
}
Sin el retraso de la llamada de salida no se mostrará.