¿Cómo deshabilitar la interacción del usuario en MKMapView?


¿Cómo deshabilitar la interacción del usuario en un mapa completo (MKMapView) en iOS? Solo quiero desactivar el zoom, tocar, etc. y mostrar un mapa estático. [self.mapView setUserInteractionEnabled:NO] no funcionó. No se encontraron soluciones de trabajo a través de Google u otras respuestas aquí en Stack (enlace de pls si encuentra una respuesta de trabajo..). Objetivo iOS 5. Debería haber una manera más fácil de hacer esto.

Author: eric, 2013-03-14

4 answers

La clave es desactivar zooms y scrolls, tales como:

self.mapView.zoomEnabled = false;
self.mapView.scrollEnabled = false;
self.mapView.userInteractionEnabled = false;
 66
Author: Rob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-08 01:31:08

Puedes hacer esto en Interface Builder así:

Así

 17
Author: Adam Waite,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-01 15:59:09

¿Qué tal este pequeño truco! simplemente coloque UIView encima del MKMapView con todos los mismos detalles del marco. También tenga en cuenta que el backgroundColor de esta vista debe ser clearColor

 1
Author: illuminatus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-14 19:10:57

Puede establecer la propiedad enabled de MKAnnotationView en NO

Para deshabilitar el zoom, puede configurar mapView.zoomEnabled = FALSE;

Habilitado

Un valor booleano que indica si la anotación está habilitada.

@property (nonatomic, getter=isEnabled) BOOL enabled

Discusión

El valor predeterminado de esta propiedad es YES. Si el valor de esta propiedad es NO, la vista de anotación ignora los eventos táctiles y no se puede seleccionar. Las subclases también pueden mostrar el contenido de la anotación de manera diferente dependiendo de la valor de esta propiedad.

 0
Author: Shamsudheen TK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-14 19:07:52