Можно ли создать настраиваемый, анимированные MKAnnotationView?

голоса
3

Я пытаюсь моделировать анимацию местоположения пользователя в MapKit (где-положение пользователя представлена ​​пульсирующей синей точкой). Я создал пользовательский подкласс MKAnnotationView и в методе DrawRect я пытаюсь цикл через набор цветов. Вот более простая реализация, что я делаю:

- (void)drawRect:(CGRect)rect {
float magSquared = event.magnitude * event.magnitude;
CGContextRef context = UIGraphicsGetCurrentContext();
if (idx == -1) {
    r[0] = 1.0; r[1] = 0.5; r[2] = 0;
    b[0] = 0; b[1] = 1.0; b[2] = 0.5;
    g[0] = 0.5; g[1] = 0; g[2] = 1.0;
    idx = 0;
}
// CGContextSetRGBFillColor(context, 1.0, 1.0 - magSquared * 0.015, 0.211, .6);
CGContextSetRGBFillColor(context, r[idx], g[idx], b[idx], 0.75);
CGContextFillEllipseInRect(context, rect);
idx++;
if (idx > 3) idx = 0;
}

К сожалению, это только приводит к тому, аннотаций быть один из 3-х различных цветов и не цикл через них. Есть ли способ, чтобы заставить MKAnnotations постоянно перерисовывать так, что кажется, анимировать?

Задан 21/04/2010 в 14:47
источник пользователем
На других языках...                            


1 ответов

голоса
4

Вы можете позвонить setNeedsDisplayна ваш взгляд аннотаций всякий раз , когда вы хотите, чтобы перерисовать. Самый простой способ сделать это было бы для самого пояснительных настроить таймер , который стрелял каждый 1/60 - ую секунды или около того .

Более сложный подход был бы поместить ваш код рисования в обычай CALayerи применить повторяющуюся Co Animation анимации к нему. Смотрите мой ответ на «Анимационный пользовательское свойство CALayer подкласса» для подхода.

Ответил 21/04/2010 в 15:22
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more