Sto tentando di caricare la regione della mappa e i metodi delegati di MKMapView non vengono richiamati sul secondo o sul successivo caricamento. Nessuno dei metodi delegati valeCome cancellare la cache di MKMapView?
- (void)mapViewWillStartLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error;
vengono mai chiamati. Gli unici metodi chiamati sono
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
Sembra che iOS4 è caching MapView piastrelle immagini.
Ho trovato queste righe nella documentazione di riferimento del protocollo MKMapViewDelegate. La linea evidenziata è il mio problema.
Questo metodo viene chiamato quando sono stati caricati i riquadri della mappa associati alla richiesta corrente. I riquadri della mappa vengono richiesti quando una nuova area visibile viene spostata nella vista e le tessere non sono già disponibili. Le tessere mappa possono anche essere richieste per porzioni della mappa che non sono attualmente visibili. Ad esempio, la visualizzazione della mappa può caricare i riquadri che circondano immediatamente l'area attualmente visibile come necessario per gestire le piccole teglie da parte dell'utente.
Ho bisogno di eseguire determinate operazioni dopo che la mappa è stata caricata, ma poiché nessuno dei metodi delegati sopra menzionati viene chiamato non sono in grado di eseguire la funzionalità desiderata. Qualcuno può suggerire una soluzione per cancellare la cache o fornire una soluzione alternativa per questo? Ho già provato a utilizzare i metodi descritti here e this ma non riesco ancora a ottenere il funzionamento del codice.
Che cosa stai cercando di ottenere utilizzando questi metodi delegati? – AlexB
Ho bisogno di una schermata di mappatura della mappa in didFinishLoadingMap e questo metodo delegato viene chiamato solo una volta, dopo aver memorizzato nella cache le tile non chiama néfinfinished né failLoad delegate. Cosa dovrei fare ora? –
Ho archiviato Apple Bug # 13774496 relativo a questo e ho creato un'app di esempio per mostrare che il problema esiste ancora su iOS6: https://github.com/iwasrobbed/MapKitDelegateBug – iwasrobbed