Centra el MKMapView en mi location al presionar un button

Mi aplicación incluye un MKMapView que muestra la location de los usuarios como una viñeta azul.

Ahora hice un button (al igual que en una aplicación de map normal) que cuando se presiona debe centrar la vista de map en la location de los usuarios, pero no sé cómo hacerlo.

Puede configurar el modo de seguimiento de usuarios de vista de map en MKUserTrackingModeFollow. Establecería automáticamente el centro del map en la location del usuario.

 - (IBAction)centerMapOnUserButtonClicked:(id)sender { [self.mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES]; } 
 [self.mapView setCenterCoordinate:self.mapView.userLocation.coordinate animated:YES]; 

Acabo de estar trabajando en este problema hoy.

Es posible agregar un button MKUserTrackingBarButtonItem a una barra de herramientas para copyr la funcionalidad de la aplicación iOS Maps. Al presionar el button, se activará y desactivará el seguimiento.

 - (void)viewDidLoad { [super viewDidLoad]; MKUserTrackingBarButtonItem *buttonItem = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.map]; self.navigationItem.rightBarButtonItem = buttonItem; } 

Una respuesta más completa está disponible aquí .

Eso es todo :

 locationManager = [[CLLocationManager alloc] init]; if ([CLLocationManager locationServicesEnabled]) { locationManager.delegate = self; locationManager.desinetworkingAccuracy = kCLLocationAccuracyBest; locationManager.distanceFilter = kCLDistanceFilterNone; [locationManager startUpdatingLocation]; } location = [locationManager location]; CLLocationCoordinate2D coordinate = [location coordinate];; MKCoordinateRegion region; region.center=coordinate; MKCoordinateSpan span; span.latitudeDelta=10.015; // Vary as you need the View for span.longitudeDelta=10.015; region.span=span; [mapView setRegion:region]; self.mapView.showsUserLocation = YES; 

Solución Swift 3

 @IBAction func centerUserButton(_ sender: Any) { self.mapView.setCenter(self.mapView.userLocation.coordinate, animated: true) }