2011-01-21 16 views
6

cuando intento mover MKCircle en mi MKMapView Aparece el siguiente mensaje de error: -[MKCircle setCoordinate:] unrecognized selector ... Pero de acuerdo con la documentación, MKCircle cumple con el protocolo MKAnnotation, por lo que debe tener el método setCoordinate: implementado (además, Xcode me ofrece autosugestión y el depurador no muestra ninguna advertencia).Mover MKCircle en MKMapView

¿Alguien sabe cuál es el problema?

Muchas gracias.

Respuesta

9

Aunque MKCircle se conforma a MKAnnotation, la clase MKCircle entonces (por desgracia) reemplaza la propiedad de coordenadas como de sólo lectura:

El punto central de la zona circular, especificarse como una latitud y longitud. (sólo lectura)

@property (no atómica, de sólo lectura) CLLocationCoordinate2D coordenadas


La solución más sencilla es eliminar la vieja plantilla con removeOverlay: y añadir una nueva con el nuevo centro de coordinación y radio.

+0

Sí, esta propiedad es de solo lectura incluso en el protocolo MKAnnotation, pero también está el setter que la omite. Sé que puedo eliminarlo y volver a crearlo en otro lugar, pero utilizo el círculo para mostrar la precisión de ubicación alrededor de las anotaciones personalizadas que marcan a otras personas en el mapa y me gustaría animar moviendo el círculo junto con la anotación (y, por supuesto, también ampliando y encogimiento del círculo). Pero las superposiciones se deben usar para mostrar datos estáticos (resaltar carreteras en los mapas, etc.) de acuerdo con la documentación, por lo que eliminar/leer tendrá que ser suficiente. ; o) de todos modos gracias por tu respuesta. – JakubM

+0

También me gustaría superponer círculos en "movimiento" en lugar de solo quitarlos y agregarlos porque me gustaría animar este movimiento. ¿Has encontrado alguna solución? – user836026

+1

@ user836026: Sí, necesita crear una superposición personalizada. Vea mi comentario sobre [esta pregunta] (http://stackoverflow.com/questions/9056451/draw-a-circle-of-1000m-radius-around-users-location-in-mkmapview) para más detalles. – Anna