2011-12-01 13 views
10

Ho bisogno di tracciare con precisione il centerCoordinate di un MKMapView mentre l'utente ingrandisce/esegue il panning della mappa, vale a dire tra gli eventi regionWillChangeAnimated: e regionDidChangeAnimated:.Monitoraggio del centro di MKMapViewCoordinate

Ho provato i seguenti approcci provando a bloccare un MKAnnotation al centro della mappa. Purtroppo, nessuno di loro lavoro abbastanza bene:

  • Utilizzando UIPanGestureRecognizer (come descritto here): questo funziona abbastanza bene mentre il display viene toccato, ma non aggiorna mentre la mappa è animata dopo il tocco gesto è completa . Inoltre, gli aggiornamenti sono in ritardo rispetto all'effettivo centerCoordinate.

  • Utilizzo di UIScrollViewDelegate I subclassed MKMapView per ricevere l'evento scrollViewDidScroll:. Questo ha funzionato, ma l'evento non viene attivato ad ogni incremento di scorrimento, con conseguenti aggiornamenti a scatti.

  • Uso KVO Comunicazioni: seguenti this reticolo, ho cercato di osservare il centerCoordinate mapview. Funziona per lo userLocation, ma le notifiche non sembrano essere inviate per centerCoordinate.

Tutte le idee su come monitorare centerCoordinate efficace e accurata?

KVO sembrava la soluzione migliore. C'è un trucco per farlo funzionare con la proprietà centerCoordinate di MKMapView?

+1

Hai mai risolto questo tramite notifiche KVO? – Jann

risposta

0

Se ho capito bene, stai provando ad avere qualcosa (annotazione nel tuo caso) che è sempre al centro dello schermo, giusto? Non so a cosa serve questa annotazione, ma è accettabile posizionare un'altra vista trasparente sulla parte superiore della mappa che funge da annotazione (puoi anche fare in modo che questa vista abbia le stesse dimensioni della mappa e avere una sottoview che funzioni come annotazione) . Avrà lo stesso effetto sull'utente. Rispetto alla regione è cambiato, è possibile ottenere il centro coordinato e fare qualsiasi elaborazione che è necessario eseguire. Non penso che sia necessario eseguire alcuna elaborazione in quanto l'utente esegue la panoramica o pizzica la mappa ... Senza contare che le annotazioni sono pensate per avere coordinate fisse.

Problemi correlati