Detenga que MKMapView se mueva a la location actual del usuario cuando el usuario mueve el map

Estoy haciendo una aplicación para mostrar algunos lugares cerca de la location actual del usuario. Cuando el usuario mueve el map, el map mueve al usuario a su location actual, una y otra vez. Entonces, el usuario no puede ver las annotations en el map, porque si mueve el map, el map vuelve a su location actual.

Esto es lo que estoy haciendo ahora mismo:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { if (userLocation) { MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 1000, 1000); MKCoordinateRegion regionDelMapa = [self.map regionThatFits:region]; if(isnan(regionDelMapa.center.latitude)) { NSLog(@"Bad region..."); }else { [self.map setRegion:regionDelMapa animated:YES]; } } } 

He intentado algunas otras respuestas aquí, pero no pasa nada. Este no es el comportamiento deseado, entonces, ¿cómo puedo dejar de actualizar la location actual del usuario?

 [self.map setRegion:regionDelMapa animated:YES]; 

Esa línea establece la región del map. Está ejecutando ese código cada vez que obtiene una actualización, restableciendo así el área que cubre el map. Si no desea que el map se vuelva a centrar en la location del usuario en cada actualización, elimine ese código del método -mapView:didUpdateUserLocation: method.

Si desea centrar el map en el usuario una vez y luego permitir que el usuario se desplace lejos de esa location, use la Ubicación central para get la location del usuario.

Utilice esta API: [locationManager stopUpdatingLocation]; Agregue esto a su function didUpdateUserLocation .