¿Hacer MKMapView de forma circular en ios?

Estoy trabajando en una aplicación donde tengo que hacer Mapa usando MKMapView, pero con forma circular?

Cualquier idea sobre esto, cualquier pista sería útil también.

Vea en la captura de pantalla, tendrá una idea de lo que estoy preguntando.

Ver el mapa en círculo.

Ver el mapa en círculo

preguntado el 28 de agosto de 12 a las 10:08

@wattson, revíselo una vez más, acabo de agregar más detalles. -

No creo que este diseño cambie la respuesta. simplemente redondee la vista del mapa y agregue los otros detalles con superposiciones o como subvistas:

2 Respuestas

Aquí hay una manera complicada, ¡pero puede ser que quieras!

Añada QuartzCore.framework

#import <QuartzCore/QuartzCore.h>

//make circled shape

[yourMapView.layer setMasksToBounds:YES];
[yourMapView.layer setCornerRadius:160.0]; //here you've to pass width of yourMapView / 2

Emocionado de ver más respuestas!! :)

Respondido 28 ago 12, 10:08

En primer lugar, si hace esto mientras usa fotografías aéreas o satelitales, violará la Condiciones de servicio de Google Maps.

10 Restricciones de licencia. Salvo que se permita expresamente en los Términos, o a menos que haya recibido una autorización previa por escrito de Google (o, según corresponda, del proveedor de Contenido particular), las licencias de Google anteriores están sujetas a su cumplimiento de todas las restricciones a continuación. Salvo que se permita explícitamente en la Sección 7, usted no debe (ni puede permitir que nadie más lo haga):

...

10.7 eliminar, ocultar o alterar de cualquier manera cualquier advertencia, aviso (incluido, entre otros, cualquier aviso de derechos de autor u otros derechos de propiedad) o enlace que aparezca en el Servicio o el Contenido;

Cualquier circular MKMapView probablemente ocultará el aviso de derechos de autor que se muestra con las fotografías.

podemos esperar MKMapView pronto cambiará de usar datos de Google a datos de Apple, pero probablemente habrá un texto similar que no debe ocultar.


Con eso fuera del camino, hay dos formas de hacer que esto funcione:

  1. Crée un UIView subclase con un fondo transparente, haga su drawRect dibuje alrededor de un agujero circular, y haga su pointInside:withEvent: retorno de método NO por el mismo agujero. Coloque una de estas vistas encima de su MKMapView.
  2. Crée un CAShapeLayer con un círculo opaco (o cualquier otra forma) y convertirlo en el mask de los MKMapViewpropia layer. Esto permitirá que el mapa circular aparezca en cualquier lugar, pero aún será posible interactuar con sus esquinas invisibles.

Respondido 28 ago 12, 13:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.