2013-02-20 3 views
1

Изображения на моих аннотациях после добавления в первый раз хороши. Каждая аннотация имеет изображение с номером на нем. Когда я прокручиваю над картой и метод «viewForAnnotation» является привлекаемым (второй раз) и неправильные изображения были показаны .. Кажется, что неправильны аннотации были возвращены ...Mapview: Изображение аннотации неправильно после просмотраОтношение

ViewAnnotation Метод:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ 
static NSString *identifier = @"pin"; 
VBAnnotationView *view = (VBAnnotationView *)[self.MapView dequeueReusableAnnotationViewWithIdentifier:identifier]; 
if (view == nil) { 
    view = [[VBAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier]; 
} 
return view; } 

Обратите внимание, что VBAnnotationView является моим обычным MKAnnotationView.

Если «вид» не равен нулю, то вид, найденный «dequeueReusableAnnotationViewWithIdentifier», будет возвращен с неправильным изображением на нем. Когда я комментирую чек, если «view == nill» изображение во всех аннотациях правильно.

Для оптимализации я проверяю метод «viewForAnnotation», если аннотация уже существует. При удалении проверки, если аннотация уже существует, изображения отображаются правильно.

+0

Вы имеете в виду MKAnnotationView вместо VBAnnotationView? – Camus

+0

Привет, Camus, VBAnnotationView - это мой обычай MKAnnotationView. Я добавил это на вопрос. –

ответ

0

DequeueReusableAnnotationViewWithIdentifier не имеет представления о том, что означает «правильное» изображение для вашей аннотации .. это просто дает вам возможность использовать .. вам все равно нужно настроить его, как только вы его получите, сообщив ему, что это аннотация будет для.

if (view == nil) { 
    view = [[VBAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier]; 
} 
else view.annotation=annotation; 
+0

изображение уже установлено, когда приложение запускается в первый раз. В аннотационном представлении содержится изображение. То, что я сейчас делал, - это каждая аннотация его собственного идентификатора. –

+0

Это будет работать, но оно побеждает цель использования многоразового представления для начала. Если вы собираетесь это делать, вы можете просто иметь массив или словарь представлений. –

Смежные вопросы