несколько regionDidChange Анимированные звонки - что дает? - PullRequest
0 голосов
/ 15 января 2010

У меня есть MKMapView внутри UITableView в качестве пользовательской ячейки (не спрашивайте;) - не знаю, действительно ли это важно), для которого я регистрирую метод делегата regionDidChangeAnimated. Этот метод вызывается три раза при загрузке UITableView - один раз с действительной областью, а затем еще два раза с удаленной областью. В симуляторе я последовательно получаю регион с центром (+37.43997405, -97.03125000). На устройстве это, кажется, зависит от местоположения, сообщенного менеджером местоположения, который инициализирует представление карты.

Почему я получаю три звонка regionDidChangeAnimated? И почему координаты центра для последних двух из них отключены?

Это код, который я использую для получения координат центра:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    CLLocation *l = [[CLLocation alloc] initWithLatitude:self.mapView.centerCoordinate.latitude longitude:self.mapView.centerCoordinate.longitude];
(....)

1 Ответ

1 голос
/ 15 января 2010

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

Я не вижу неожиданных вызовов метода делегата regionDidChangeAnimated:.

Я вижу вызовы этого метода только тогда, когда:

  1. Пользователь меняет положение / масштаб карты ИЛИ
  2. Какой-то код меняет центр / пролет карты

Вы уверены, что видите неожиданные звонки? Вы не используете код для настройки региона (центра / диапазона) карты?

...