Mapa de iOS iOS: cómo saber cuándo comienza o deja de arrastrar el usuario

Estoy desarrollando con Google map SDK 6.1 . Quiero saber cuándo el usuario comienza a arrastrar o detener el map, acabo de encontrar 2 funciones de delegado: didChangeCameraPosition y idleAtCameraPosition . ¿Hay alguna forma de atrapar cuando el usuario comienza o deja de arrastrar el map?

Para detectar si el usuario arrastró el map, creo que es mejor usar este método

 - (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture 

y verifique si el argumento del gesture es true .

El didChangeCameraPosition se llama, como se mencionó, muchas veces, pero ya que también es llamado por ambos configurando el centro del map del código y como resultado de un gesto, realmente no se puede ver la diferencia en ese método solo.

De la documentation :

 - (void) mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position 

Se llama cuando el map queda inactivo, después de que se hayan completado gestos o animaciones pendientes (o después de que la camera se haya configurado explícitamente).

Entonces, con este delegado, puede capturar cuando el usuario dejó de arrastrar el mapView.

Para recibir una notificación cuando el usuario comenzó a arrastrar, simplemente use el otro delegado que ha señalado:

 - (void) mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position 

Llamada repetidamente durante cualquier animation o gesto en el map (o una vez, si la camera está establecida explícitamente).

Esto puede no requerirse para todas las posiciones intermedias de la camera. Siempre se llama a la position final de una animation o gesto.

No estoy seguro de qué te está confundiendo.

Tenga en count que idleAtCameraPosition es cuando el map deja de moverse cuando levanta el dedo.

Tuve que subclass GSMapView y agregar PanGestureRecognizer >> State ENDED para get cuando se levanta el dedo.

https://github.com/clearbrian/GoogleMapiOS_TapEndedGesture