Вопрос по ios, ios5 – изменить изображение аннотации после его создания

5

У меня есть пользовательская аннотация, которая устанавливает свое изображение на основе типа аннотации с использованием метода делегата viewForAnnotation. Я только использую 1 аннотацию, которая представляет движущийся автомобиль и хочет изменить изображение, когда автомобиль обнаруживает движение и остановку. Как я могу сделать это, кроме удаления моей аннотации и повторного добавления, что вызывает мигание?

Ваш Ответ

1   ответ
11

что состояние автомобиля изменилось, извлекайте текущее представление аннотации, используяMKMapView instance методviewForAnnotation:, Это не то же самое, чтоmapView:viewForAnnotation: delegate метод.

После получения текущего представления для аннотации вы можете изменить его свойства, включаяimage.

Также убедитесь, чтоmapView:viewForAnnotation: Метод делегата имеет такое же точное условие для установкиimage на основании состояния аннотации автомобиля. Возможно, вы захотите поместить логику в общий метод, вызываемый из обоих мест (где изменяется состояние и метод делегата), чтобы код не дублировался.

Например, когда состояние изменяется, вы можете иметь:

//carAnnotation is your id<MKAnnotation> object
MKAnnotationView *av = [mapView viewForAnnotation:carAnnotation];
if (carAnnotation.isMoving)
    av.image = [UIImage imageNamed:@"moving.png"];
else
    av.image = [UIImage imageNamed:@"stopped.png"];

if утверждение (или любую логику, которую вы должны установитьimage) та часть, которая также должна быть вviewForAnnotation метод делегата.

Error: User Rate Limit Exceeded

Похожие вопросы