Ubicación actual con la anotación personalizada, llamada de salida y el círculo azul exactitud

StackOverflow https://stackoverflow.com/questions/3075134

  •  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

¿Fue útil?

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á.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top