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.
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;
Vous pouvez le faire dans Interface Builder comme ceci:
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
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é.