Este posibil pentru a crea un obicei, animat MKAnnotationView?

voturi
3

Am încercat să simuleze animație locația utilizatorului în MapKit (în cazul în care-de poziția utilizatorului este reprezentat printr-un punct albastru pulsatorie). Am creat o subclasă personalizat de MKAnnotationView și în metoda drawRect am încercarea de a parcurge un set de culori. Iată o implementare mai simplă a ceea ce fac:

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

Din păcate, acest lucru determină doar adnotările să fie una dintre cele 3 culori diferite și nu ciclu prin ele. Există o modalitate de a forța MKAnnotations pentru a aspira în mod continuu, astfel încât pare să fie animat?

Întrebat 21/04/2010 la 14:47
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
4

Sunteți liberi pentru a apela setNeedsDisplayla afișarea adnotare ori de câte ori doriți pentru a redesena. Cel mai simplu mod de a face acest lucru ar fi pentru vizualizarea adnotare pentru a seta un cronometru care a tras la fiecare 1/60 dintr - o secundă sau cam asa ceva.

O abordare mai sofisticată ar fi de a pune codul de desen într - un obicei CALayerși să aplice o animație repetitivă Core Animation să - l. A se vedea răspunsul meu la „Animarea o proprietate personalizată de CALayer subclasă“ pentru o abordare.

Publicat 21/04/2010 la 15:22
sursa de către utilizator

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