2013-09-28 2 views
2

Я пытаюсь оживить серию радарных изображений по карте США. У меня есть список изображений радара gif, загруженных с сайта NOAA.UIImage animation over mapkit overlay

Как я могу реализовать анимацию серии изображений на Mapkit Overlay? Я видел эти сообщения здесь: Animated MKOverlayView и Animating an MKOverlayView

, но не смог найти решение.

ответ

0

Я решил проблему, создав таймер в своем контроллере. Каждый раз, когда срабатывает таймер, он вызывает метод setNeedsDisplay для моего пользовательского MKOverlayRenderer. В методе drawMapRect подкласса рендеринга у меня есть следующий код для обновления изображения на наложении:

-(void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context{ 
    if (!weatherDataStore) //This is the store where I have my radar images 
     weatherDataStore = [WeatherDataStore sharedInstance]; 

    UIImage *image = [weatherDataStore currentRadarImage]; 
    if (!image || ![image isKindOfClass:[UIImage class]]) { 
     return; 
    } 

    CGImageRef imageReference = image.CGImage; 
    CGContextSetAlpha(context, 0.8); 
    MKMapRect theMapRect = [self.overlay boundingMapRect]; 
    CGRect theRect = [self rectForMapRect:theMapRect]; 

    CGContextScaleCTM(context, 1.0, -1.0); 
    CGContextTranslateCTM(context, 0.0, -theRect.size.height); 

    CGContextDrawImage(context, theRect, imageReference); 
} 
1

Лучшее решение для iOS7. MKOverlayRenderer очень сложно было добавить анимацию в MKMapkit. Следуйте примеру из этого project.

Смежные вопросы