Обновление MapView не работает - PullRequest
0 голосов
/ 20 сентября 2011

Я показываю маршрут между 2 местами. Мой проект - это проект, основанный на навигации. В методе viewWillAppear: я отслеживаю текущее местоположение пользователя с помощью диспетчера местоположения. в - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation метод Я получаю координаты текущего местоположения пользователя.

Я рисую карту с этим. Теперь, когда я возвращаюсь к предыдущему виду и возвращаюсь к виду карты, он не загружает местоположение пользователя. Он не вызывает - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation метод.

Как я могу исправить это? Мне нужно получать маршрут карты каждый раз, когда я прихожу в этот класс.

Заранее спасибо

1 Ответ

0 голосов
/ 18 октября 2011

Я тоже собираюсь ответить на свой вопрос:

Я видел сообщения о том, как сбросить вид, перерисовать слой и т. Д. Я довольно (не новичок) неопытен с языком, поэтому то, что я сделал, это хак, но это работает. Я надеюсь, что вы используете это, если вам нужно, но найти лучшее решение.

Просмотр контроллера:

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],2587600.0, 2587600.0);

}

- (void)viewWillDisappear:(BOOL)animated {

    [super viewWillDisappear:animated];

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],5.0, 5.0);
}

Таким образом, когда представление уходит, ну ... вид, тогда карта действительно увеличивается. Когда вид возвращается к виду, данные перезагружаются и вуаля. Ваш пробег может варьироваться, но этот метод отлично работает для того, что мне нужно сделать.

И это вовсе не дребезжащий эффект. Это бесшовные. С точки зрения пользовательского интерфейса, ничего не меняется.

ура! Роберт

...