Tengo un MKMapView
con un delegado registrado, así puedo escuchar los eventos de cambio de región (específicamente, regionDidChangeAnimated). Estoy buscando una manera robusta de saber si un evento de cambio de región fue el resultado de un usuario que arrastra el mapa o de una solicitud programática setRegion:
.¿Cómo puedo saber cuándo el evento de cambio de región en MKMapView es programático o el arrastre del usuario de MKMapView?
Mi objetivo es tener una aplicación que centre automáticamente el mapa en función de un rastro de ubicación, a menos que el usuario haya barrido el mapa a mano, en cuyo punto se desactivará el autocentrado. Por lo tanto, estoy llamando a setRegion: para volver a centrar la vista del mapa según corresponda, pero me es difícil decir si la llamada resultante regionDidChangeAnimated:
al delegado es programática o desde un usuario-pan. He intentado hackear algo juntos, pero sigo corriendo en condiciones de carrera cuando el usuario comienza a panoramizar justo cuando aparece una actualización de ubicación.
Tuvo este problema también. Tu código es una buena solución. Es un poco hacky, pero no tan malo, ya que todavía se lee como un buen inglés. Es solo una bandera booleana :) – chakrit