Lehetséges, hogy hozzon létre egy egyéni, animált MKAnnotationView?

szavazat
3

Próbálom, hogy szimulálja a felhasználó tartózkodási helyét animáció MapKit (ahol-a felhasználó helyzetét képviseli pulzáló kék pont). Létrehoztam egy egyéni alosztálya MKAnnotationView és a drawRect eljárás én próbál lépkedni egy színösszeállítást. Itt egy egyszerűbb végrehajtását, mit csinálok:

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

Sajnos ez csak okozza a kommentárok, hogy az egyik a 3 különböző színű és nem ciklus rajtuk keresztül. Van egy módja annak, hogy a hatályos MKAnnotations folyamatosan dolgozza át, hogy úgy tűnik, hogy animált?

A kérdést 21/04/2010 14:47
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
4

Ön szabadon hívja setNeedsDisplayfel a kommentár nézet, amikor jólesik, hogy dolgozza át. A legegyszerűbb módja ennek az lenne, ha a kommentár véli magát, hogy hozzanak létre egy időzítőt, amely égetett minden 1/60-ad része egy második, vagy úgy.

A kifinomultabb megoldás az lenne, hogy a rajz kódot egy egyéni CALayerés alkalmazza ismétlődő Core Animation animáció rá. Lásd a válaszom animálása „egyedi tulajdonsága CALayer alosztály” egy megközelítést.

Válaszolt 21/04/2010 15:22
a forrás felhasználó

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