Ich zeige eine Kartenansicht auf der Startseite meiner Anwendung an, ich stelle die Region und die Koordinaten vom aktuellen Standort mit CLLocation ein. Wenn die Anwendung ausgeführt wird, wird ein blauer Bildschirm in der Kartenansicht angezeigt. Wenn ich die untergeordneten Ansichten öffne und zum Hauptbildschirm zurückkehre, wird die Karte perfekt mit dem Standort und der Zoomstufe angezeigt. Ist im folgenden Code etwas falsch, das den blauen Bildschirm verursacht?Problem beim Zoomen von MapView unter Verwendung des aktuellen Standorts
- (void)viewWillAppear:(BOOL)animated {
CLLocationManager *lm = [[CLLocationManager alloc] init];
lm.delegate = self;
lm.desiredAccuracy = kCLLocationAccuracyBest;
lm.distanceFilter = kCLDistanceFilterNone;
[lm startUpdatingLocation];
CLLocation *location = [lm location];
CLLocationCoordinate2D coord;
coord = [location coordinate];
CLLocationCoordinate2D zoomLocation;
zoomLocation.latitude = coord.latitude; //39.281516;
zoomLocation.longitude= coord.longitude; //-76.580806;
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.3*METERS_PER_MILE, 0.3*METERS_PER_MILE);
MKCoordinateRegion adjustedRegion = [self.mainMapView regionThatFits:viewRegion];
[self.mainMapView setRegion:adjustedRegion animated:YES];
}
schön, können Sie mir helfen, wie diese Delegiertenmethode zu implementieren – Firdous
@Firdous - ein Beispiel hinzugefügt. – mattjgalloway
mein locationManager: didUpdateToLocation: fromLocation: wird nicht aufgerufen, auch wenn ich die mapView.delegate = self in viewDidLoad gesetzt habe. Obwohl der blaue Bildschirm nicht erscheint und das Problem scheint gelöst, aber ich sehe nicht die Nslog-Nachricht im Protokoll von dieser Delegate-Methode – Firdous