o MKAnnotationView animasyonlu bir özel, oluşturmak mümkün mü?

oy
3

Ben MapKit (burada-by kullanıcının pozisyonu zonklayan mavi nokta ile temsil edilir) kullanıcı konum animasyon taklit çalışıyorum. Ben MKAnnotationView özel bir alt sınıfını oluşturduk ve drawRect yönteminde ben renklerin kümesi arasında geçiş yapmak için çalışılıyor. İşte ne yapıyorum daha basit bir uygulama görebilirsiniz:

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

Ne yazık ki bu sadece 3 farklı renkten biri olarak ek açıklamaları neden olur ve onlar aracılığıyla döngüsü yok. animasyonlu gibi göründüğünü sürekli böylece yeniden çizmek için MKAnnotations zorlamak için bir yolu var mı?

Oluştur 21/04/2010 saat 14:47
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
4

Sen buna serbesttir setNeedsDisplaybunu yeniden çizmek istediğinizde · Açıklama görünümü. Ek açıklama görünümü kendisi ya da öylesine bir saniyenin her 1 / 60. ateşlenen bir zamanlayıcı kurmak için Bunu yapmanın en kolay yolu olurdu.

Daha sofistike bir yaklaşım özel bir içine çizim kodu koymak olacaktır CALayerve buna bir yinelenen Çekirdek Animasyon animasyon uygulayın. Bkz "CALayer alt sınıfının bir özel özelliği animasyon" Cevabımı bir yaklaşım için.

Cevap 21/04/2010 saat 15:22
kaynak kullanıcı

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