Er det mulig å lage en tilpasset, animert MKAnnotationView?

stemmer
3

Jeg prøver å simulere brukerstedet animasjon i MapKit (der-etter brukerens posisjon er representert ved en pulserende blå prikk). Jeg har opprettet en egendefinert underklasse av MKAnnotationView og i drawRect metoden jeg forsøker å gå gjennom et sett av farger. Her er en enklere gjennomføring av hva jeg gjør:

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

Dessverre er dette bare fører til merknadene til å være en av de 3 forskjellige farger og ikke bla gjennom dem. Er det en måte å tvinge MKAnnotations kontinuerlig tegne slik at det ser ut til å være animert?

Publisert på 21/04/2010 klokken 13:47
kilden bruker
På andre språk...                            


1 svar

stemmer
4

Du står fritt til å ringe setNeedsDisplaypå merknad visningen når du vil tegne. Den enkleste måten å gjøre dette ville være for merknaden utsikten seg for å sette opp en timer som avfyrte hver 1 / 60th av et sekund eller så.

En mer sofistikert tilnærming ville være å sette tegningen koden i en tilpasset CALayerog gjelder et gjentakende Core Animation animasjon til det. Se mitt svar til "Animere en tilpasset eiendom CALayer underklasse" for en tilnærming.

Svarte 21/04/2010 kl. 14:22
kilden bruker

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