Verwenden von IBAction-Schaltflächen zum Zoomen von MapView

Ich habe ein Problem. Mein aktueller Standort wird in einer Kartenansicht angezeigt und zentriert, die Kartenregion wird jedoch nicht vergrößert. Ich habe versucht, Robs Rat zu übernehmen, indem ich Span und Region aus der didUpdateToLocation-Methode entfernt habe, aber ich muss es nicht richtig implementiert haben. Ich glaube nicht, dass mein Aufruf von setRegion in viewDidLoad erkannt wird, und meine Schaltflächen werden nicht erkannt. Bitte überprüfen Sie meinen Code unten und weisen Sie auf den / die Fehler hin. Mein Ziel ist es, mithilfe der IBAction-Schaltflächen in meinen Standort hinein- und herauszuzoomen.

.h

- (IBAction)zoomIn:(id)sender;

- (IBAction)zoomOut:(id)sender;

.m in viewDidLoad

double miles = 0.5;

MKCoordinateSpan span;
span.latitudeDelta = miles/69.0;
span.longitudeDelta = miles/69.0;

MKCoordinateRegion region;
region.span = span;

[self.mapView setRegion:region animated:YES];

[self.mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];

_mapView.mapType = MKMapTypeSatellite;

.m in meiner didUpdateToLocation-Methode.

[self.mapView setCenterCoordinate:newLocation.coordinate animated:YES];

.Hineinzoomen:

- (IBAction)zoomIn:(id)sender 
{
    MKCoordinateSpan span;
    span.latitudeDelta = _mapView.region.span.latitudeDelta * 2;
    span.longitudeDelta = _mapView.region.span.latitudeDelta * 2;
    MKCoordinateRegion region;
    region.span = span;
    region.center = _mapView.region.center;

    [self.mapView setRegion:region animated:YES];
}

.Rauszoomen :

- (IBAction)zoomOut:(id)sender
{
     MKCoordinateSpan span;
     span.latitudeDelta = _mapView.region.span.latitudeDelta / 2;
     span.longitudeDelta = _mapView.region.span.latitudeDelta / 2;
     MKCoordinateRegion region;
     region.span = span;
     region.center = _mapView.region.center;

     [self.mapView setRegion:region animated:YES];
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage