Изменение пользовательского изображения MKAnnotationView? - PullRequest
0 голосов
/ 09 августа 2011

Я знаю, что вы можете создать собственный вид аннотации, используя что-то вроде:

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKPinAnnotationView *annotationView = [[[CustomAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomAnnotation"] autorelease];     
    annotationView.image = [UIImage imageNamed:@"customPin.png"];
    return annotationView;
}

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

1 Ответ

2 голосов
/ 23 ноября 2012

Возможно, вам больше не нужен ответ, но, тем не менее, вопрос остается без ответа. Обычно я добавляю в аннотацию свойство, указывающее, какое изображение следует использовать. Это может быть BOOL, UIImage или почти все, что вам нравится.

В viewForAnnotation я проверяю это значение и устанавливаю соответствующее изображение.

Всякий раз, когда я хочу обновить изображение, я изменяю значение свойства, удаляю и добавляю аннотацию:

[theMapView removeAnnotation: myAnnotation];
[theMapView addAnnotation: myAnnotation];

Таким образом, аннотация перерисовывается.

...