Пользовательские аннотации MapKit добавляются на карту, но не отображаются на карте - PullRequest
1 голос
/ 09 июня 2010

У меня есть интерфейс с mapView и UITableView.Данные загружаются с сервера, а аннотации создаются и добавляются на карту с помощью

[mapView addAnnotation:truck]

, затем табличное представление заполняется с использованием массива, восстановленного из

[mapView annotations]

по завершении этого процесса я проверяю количество аннотаций на карте с помощью [[mapView annotations] count], вызываемым всякий раз, когда я нажимаю на ячейку в таблице, и она равна числу, которое должно быть, поэтомувсе аннотации добавляются в mapView, но по какой-то причине я не вижу никаких аннотаций в симуляторе.

Изображения именуются так же, как они назначены в пользовательском AnnotationView, функция loadAnnotation выполняется правильно,и т.д. ... я не знаю, что это могло бы быть, но я посмотрел на связь между файлом изображения и его загрузкой сто раз, чтобы найти несоответствие, но все выглядит хорошо.

Один интересный момент заключается в том, что, когда я печатаю и координирую значение после нажатия на ячейку (помните, что эти данные поступают прямо из [mapView annotations], они выглядят хорошо ... но по какой-либо причине представление аннотации не отображается.

поэтому я полагаю, что если бы я мог получить ответ на один вопрос, это было бы, каковы возможные причины для mapView содержать несколько аннотаций, но не отображать их на карте?

Спасибо

РЕДАКТИРОВАНИЕ С ВАЖНОЙ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИЕЙ

Кажется, существует разрыв между тем, что отображается на моей карте в симуляторе, и тем, что он видит в объекте mapView.Например, когда я выбираю строку в tableView, я звоню:

[mapView setRegion:MKCoordinateRegionMake([annotation coordinate], MKCoordinateSpanMake(.01, .01)) animated:YES];

, и это не влияет на карту в симуляторе. Я проверил, что координата передаетсяна самом деле является действительной координатой, но, похоже, это не имеет значения, потому что карта не отвечает. Я думал, что это может быть что-то не так с моим .xib, но этоВсе подключено правильно.делегат - это розетка, а mapView - это ссылочная розетка.

Кто-нибудь теперь понимает, что может происходить?

Ответы [ 2 ]

0 голосов
/ 10 июня 2010

Эта строка:

mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];

создавала путаницу.как только я это закомментировал, приложение начало нормально работать.

0 голосов
/ 09 июня 2010

Это действительно похоже на отсутствующие изображения.

Попробуйте заменить свои пользовательские аннотации на MKPinAnnotations для проверки и посмотрите, видны ли тогда ваши аннотации.

Реализовали ли вы следующую функцию делегата?

  • (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id) аннотация;
...