Мой mapview не масштабируется при первом проходе в контроллер вида

Кто-нибудь может мне помочь, пожалуйста? Я новичок в xcode и озадачен тем, что я считаю небольшой проблемой. По какой-то причине при первом открытии моей карты из моего начального контроллера просмотра булавка сбрасывается, но карта не масштабируется до правильной области, даже если широта и долгота правильные.

Когда я возвращаюсь к первому контроллеру вида и запускаю его снова, масштабирование работает.

Мой код находится в файле реализации контроллеров представления под viewdidload.

- (void) viewDidLoad {

[super viewDidLoad];
NSLog(@"lat in map %@", eventLat);
NSLog(@"long in map %@", eventLong);
[mapview setMapType:MKMapTypeStandard];
[mapview setZoomEnabled:YES];
[mapview setScrollEnabled:YES];

MKCoordinateRegion region = { {0.0, 0.0 }, {0.0, 0.0 } };
region.center.latitude = [eventLat doubleValue];
region.center.longitude = [eventLong doubleValue];
region.span.latitudeDelta = 0.01f;
region.span.longitudeDelta = 0.01f;

[mapview setRegion:region animated:YES];

MMAnnotate *ann = [[MMAnnotate alloc] init];
ann.title = @"Test Title";
ann.subtitle = @"Test Subtitle";
ann.coordinate = region.center;
[mapview addAnnotation:ann];

}

1 ответ

Решение

Вместо этого вы должны попробовать сделать это в viewDidAppear. Если вы готовы к тому, чтобы приближаться к этому месту каждый раз, когда появляется вид. viewDidLoad слишком рано в цикле просмотра карты.

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