Je možné vytvořit vlastní, animovaný MKAnnotationView?

hlasů
3

Snažím se, aby simulovaly animaci umístění uživatel v MapKit (kde-polohou uživatele je reprezentována pulzující modrou tečkou). Vytvořil jsem si vlastní podtřídy MKAnnotationView a ve způsobu drawRect Pokouším se procházet sadu barev. Zde je jednodušší implementace, co dělám:

- (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;
}

Bohužel to jen způsobí, že anotace je jedním ze 3 různých barev a není cyklus přes ně. Existuje způsob, jak přinutit MKAnnotations neustále překreslovat, aby se zdá být animovaný?

Položena 21/04/2010 v 14:47
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
4

Ty jsou zdarma volat setNeedsDisplayna anotace pohledu, kdykoli budete chtít, aby překreslování. Nejjednodušší způsob, jak toho dosáhnout, by bylo pro zobrazení anotace sám nastavit časovač, který vystřelil každých 1 / 60th druhý nebo tak nějak.

Sofistikovanější přístup by dát svůj kreslení kód do zvyku CALayera aplikujte opakovanou jádro animace animace k tomu. Viz moje odpověď na „Animace vlastní vlastnost CALayer podtřídy“ k přístupu.

Odpovězeno 21/04/2010 v 15:22
zdroj uživatelem

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