Добавлять пин-код только при нажатии кнопки

У меня есть этот код, который мне нужно немного изменить. Приведенный ниже код создает булавку для моего текущего местоположения (как я мог бы добавить).

Единственная проблема заключается в том, что мне нужно, чтобы код запускался только при нажатии кнопки, а не при каждом перемещении.

Вот код текущего местоположения и пин-код.

- (void)viewDidLoad {
    [super viewDidLoad];

    [self.mapView setDelegate:self];
    [self.mapView setShowsUserLocation:YES];
}

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {

    // zoom to region containing the user location
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 700, 700);
    [self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES];

    // add the annotation
    MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
    point.coordinate = userLocation.coordinate;
    point.title = @"Your Car";
    //point.subtitle = @"";
    [self.mapView addAnnotation:point];
}

Мне нужно, чтобы это работало, когда я нажимаю кнопку, такую ​​как:

-(IBAction)addPin
{
}

1 ответ

Решение

В viewDidLoad: метод,

Создайте кнопку как это:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
       action:@selector(showPinOnClick)
 forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(100.0, 200.0, 150.0, 60.0);
[self.view addSubview:button];

// создаем метод, определенный как метод селектора для UIButton в вашем viewcontroller

-(void) showPinOnClick{
//paste your code here to show the pin

CLLocationCoordinate2D location = self.mapview.userLocation.coordinate;
MKCoordinateRegion region;
MKCoordinateSpan span;

location.latitude  = -32.008081;
location.longitude = 115.757671;

span.latitudeDelta = 0.03;
span.longitudeDelta = 0.03;

region.span = span;
region.center = location;


[_mapview setRegion:region animated:YES];
[_mapview regionThatFits:region];

//Create your annotation
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
// Set your annotation to point at your coordinate
point.coordinate = location;

point.title = @"Your Car";


//Drop pin on map
[_mapview addAnnotation:point];
[_mapview selectAnnotation:point animated:NO];

}
Другие вопросы по тегам