web-dev-qa-db-fra.com

Comment désactiver l'interaction utilisateur sur MKMapView?

Comment désactiver l'interaction de l'utilisateur avec une carte entière (MKMapView) dans iOS? Je veux juste désactiver le zoom, le tapotement, etc. et afficher une carte statique. [self.mapView setUserInteractionEnabled:NO] n'a pas fonctionné. Nous n'avons trouvé aucune solution de travail via Google ou d'autres réponses ici sur Stack (lien s'il vous plaît si vous trouvez une réponse qui fonctionne ..) . Cibler iOS 5. Il devrait exister un moyen plus simple de procéder.

30
eric

La clé consiste à désactiver les zooms et les défilements, tels que:

self.mapView.zoomEnabled = false;
self.mapView.scrollEnabled = false;
self.mapView.userInteractionEnabled = false;
67
Rob

Vous pouvez le faire dans Interface Builder comme ceci: 

Like this

17
Adam Waite

Que diriez-vous de ce petit bidouillage! Il suffit de placer UIView_ au-dessus de MKMapView avec tous les mêmes détails de cadre. Notez également que la variable backgroundColor de cette vue doit être clearColor

1
illuminatus

Vous pouvez définir la propriété enabled de MKAnnotationView sur NO.

Pour désactiver Zoom, vous pouvez définir mapView.zoomEnabled = FALSE;

activée

Une valeur booléenne indiquant si l'annotation est activée.

@property (nonatomic, getter=isEnabled) BOOL enabled

Discussion

La valeur par défaut de cette propriété est YES. Si la valeur de cette propriété est NO, la vue d'annotation ignore les événements tactiles et ne peut pas être sélectionnée. Les sous-classes peuvent également afficher le contenu de l'annotation différemment en fonction de la valeur de cette propriété.

0
Shamsudheen TK