MKMapView: setRegion не работает! - PullRequest
       21

MKMapView: setRegion не работает!

4 голосов
/ 15 сентября 2009

А-а-а-а-а ... ладно, успокойся.

У кого-нибудь были проблемы с настройкой региона MKMapView? Это никогда не работало со мной.

Этот код:

-(void)setUserCenteredSpan:(MKCoordinateSpan)span{ // for this example, span = {0.5, 0.5}
    // Current region (just initialised)
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
    // New Region
MKCoordinateRegion region = MKCoordinateRegionMake([[[self userLocation] location] coordinate],
                                                   span);
NSLog(@"%f, %f - %f, %f",   region.center.latitude,
                            region.center.longitude, 
                            region.span.latitudeDelta, 
                            region.span.longitudeDelta);
    // Region saved in MKMapView
[self setRegion:region animated:NO];
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
}

Возвращает этот журнал:

30.145127, -40.078125 - 0.000000, 0.000000
0.000000, 0.000000 - 0.500000, 0.500000
0.000000, 0.000000 - 0.000000, 0.000000

Знаешь почему ??!

Большое спасибо, вы можете спасти меня от самоубийства X (

Март

РЕДАКТИРОВАТЬ: Конечно, я на устройстве, подключен к Интернету.

Ответы [ 3 ]

12 голосов
/ 16 сентября 2009

Я не совсем понимаю предыдущие журналы, но я знаю, где была моя ошибка.

Созданный экземпляр MKMapView не был инициализирован с рамкой, но с autoresizingMask, установленным в> 0.

Когда был вызван метод setRegion, мое представление еще не было сформировано. Я думаю, что значения региона рассчитываются в соответствии с рамкой просмотра, поэтому эти значения не могут быть найдены.

Просто установите кадр перед выполнением setRegion, и он будет отображаться нормально.

Пока!

1 голос
/ 22 августа 2015

Мне помогла настройка Маски Авторазмера.

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];   
1 голос
/ 15 сентября 2009

Ваш первый журнал использует self.region.center.latitude, но я не вижу этого нигде в вашем звонке на MKCoordinateRegionMake. В журнале говорится, что все, что вы используете для задания региона, имеет широту / долготу 0/0 ...

...