MKMapView ( Просмотр MKMapView ) :setRegion не работает !
-
07-07-2019 - |
Вопрос
Ааааааа...ладно, давай успокоимся.
У кого - нибудь были какие - либо проблемы с настройкой региона 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(
Март
Редактировать :Конечно, я нахожусь на устройстве, подключенном к Интернету.
Решение
Я не совсем понимаю предыдущие журналы, но я знаю, где была моя ошибка.
Созданный экземпляр MKMapView был инициализирован не фреймом, а маской автоматического изменения, установленной на > 0.
Когда был вызван метод setRegion, мое представление еще не было оформлено.Я думаю, что значения региона вычисляются в соответствии с рамкой просмотра, поэтому эти значения не удалось найти.
Просто установите рамку перед выполнением setRegion, и она будет отображаться нормально.
Пока !
Другие советы
Ваш первый журнал использует self.region.center.latitude
, но я не вижу этого нигде в вашем призыве к MKCoordinateRegionMake
.Журнал сообщает вам, что все, что вы используете для настройки региона, имеет широту / длину 0/0...
Установка маски автоматического изменения размера помогла мне.
[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];