Current location button on ios MKMapView

14,402

Solution 1

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

Solution 2

SOLUTION 1:

Drag a UIButton to your UIViewController in the storyboard and connect it to an IBAction in the ViewController.m.

-(IBAction)zoomToUserLocation:(id)sender{
    MKCoordinateRegion mapRegion;   
    mapRegion.center = mapView.userLocation.coordinate;
    mapRegion.span.latitudeDelta = 0.2;
    mapRegion.span.longitudeDelta = 0.2;

    [mapView setRegion:mapRegion animated: YES];
}

SOLUTION 2:

Or you can create your button programmatically like this:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self 
       action:@selector(zoomToUserLocation)
 forControlEvents:UIControlEventTouchUpInside];

[button setTitle:@"My Location" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];

with the following method:

-(void)zoomToUserLocation{
    MKCoordinateRegion mapRegion;   
    mapRegion.center = mapView.userLocation.coordinate;
    mapRegion.span.latitudeDelta = 0.2;
    mapRegion.span.longitudeDelta = 0.2;

    [mapView setRegion:mapRegion animated: YES];
}

Solution 3

Swift 3+

let buttonItem = MKUserTrackingBarButtonItem(mapView: mapView)
self.navigationItem.rightBarButtonItem = buttonItem
Share:
14,402
Rakesh
Author by

Rakesh

Updated on June 04, 2022

Comments

  • Rakesh
    Rakesh almost 2 years

    I am using MKMapView in my iOS Application. I have search bar in my view. If I search for location on map, I am putting annotation on that searched location. Now the issue is, I want to go back to my current location. I have seen Google Maps application, they have one button on Map which will send the user to current location.

    How to show that button?. And how to get click event of that button?.