Come si disabilita l'interazione dell'utente con un'intera mappa (MKMapView) in iOS? Voglio solo disabilitare lo zoom, toccare, ecc. E mostrare una mappa statica. [self.mapView setUserInteractionEnabled:NO]
non ha funzionato. Trovato soluzioni operative via Google o altre risposte qui su Stack (collegamento pls se trovi una risposta funzionante ..). Targeting per iOS 5. Ci dovrebbe essere un modo più semplice per farlo.Come disabilitare l'interazione dell'utente su MKMapView?
risposta
La chiave è quella di disabilitare zoom e volute, come ad esempio:
self.mapView.zoomEnabled = false;
self.mapView.scrollEnabled = false;
self.mapView.userInteractionEnabled = false;
Ok questa risposta ha funzionato per me, per la maggior parte. I rubinetti stanno ancora arrivando, ma ciò non infrange il mio caso d'uso e gli utenti non possono scorrere o zoom, quindi sono felice. Grazie! – sean
Usando questo, ero ancora in grado di usare i due movimenti di rotazione e inclinazione delle dita per spostare completamente il punto focale centrale fuori dalla vista, anche se era piuttosto noioso. – SandWyrm
Qual è il punto di disabilitare l'interazione dell'utente se devi ancora farlo nel codice ...? – Mgamerz
È possibile impostare la proprietà Enabled MKAnnotationView NO
Per disabilitare Zoom, è possibile impostare mapView.zoomEnabled = FALSE;
abilitato
Un valore booleano che indica se l'annotazione è abilitato.
@property (nonatomic, getter=isEnabled) BOOL enabled
Discussione
Il valore predefinito di questa proprietà è sì. Se il valore di questa proprietà è NO, la vista di annotazione ignora gli eventi di tocco e non può essere selezionata. Le sottoclassi possono anche visualizzare i contenuti delle annotazioni in modo diverso a seconda del valore di questa proprietà.
Non capisco come questo si applica per disabilitare l'interazione sull'intera mappa. Non voglio che l'utente sia in grado di interagire ovunque all'interno dell'intera mappa, in questo particolare caso d'uso. – sean
Che ne dici di questo piccolo trucco! è sufficiente posizionare UIView
sopra lo MKMapView
con tutti gli stessi dettagli del fotogramma. Si noti inoltre che l'backgroundColor
di questo punto di vista dovrebbe essere clearColor
farà in modo che il pulsante [legale] della visualizzazione mappa non sia selezionabile? Mela come questa? – DeyaEldeen
È possibile farlo in Interface Builder come questo:
FYI, ho provato questo e l'app è stata respinta per non essere interattiva. Non ho usato MKMapView, quindi non posso effettivamente rispondere alla tua domanda. –
@SteveMallory Non dovrebbe essere rifiutato per fare questo in un solo caso d'uso, penso. Altre app lo fanno. Dai un'occhiata a Foursquare: In un caso d'uso (Shop Detail View) la mappa è praticamente bloccata sul posto che ha senso dal momento che il contesto del contenuto è un singolo negozio. – sean
Dalla mia esperienza, non funziona se selezionato nel generatore di interfacce rimuovendo il segno di spunta su "Interazione utente abilitata" per la visualizzazione mappa. Tuttavia, impostarlo in base al codice ha funzionato per me. –