Gif animado no funciona en la superposición MKMapView utilizando MKOverlayRenderer

MKMapView mostrar un gif animado en una superposición para MKMapView . La superposición se crea utilizando MKOverlayRenderer . Para animar el gif en iOS 7, estoy usando la categoría UIImage+animatedGIF publicada aquí en GitHub.

La imagen del gif animado se muestra bien en la superposición usando la categoría; sin embargo, el gif no se anima. No tengo problemas para usar la categoría para animar un gif en un UIImageView pero parece que no funciona correctamente en una superposición de vista de mapa.

¿Cómo puedo usar esta categoría para colocar un gif animado en una superposición de vista de mapa?

o…

¿Hay alguna manera de colocar un UIImageView en la superposición que podría resolver mi problema configurando UIImageView con el gif animado?

Mi subclase de procesador de superposición es la siguiente:

MapOverlayRenderer.h

 #import  @interface MapOverlayRenderer : MKOverlayRenderer - (instancetype)initWithOverlay:(id)overlay overlayImage:(UIImage *)overlayImage; @end 

MapOverlayRenderer.m

 #import "MapOverlayRenderer.h" @interface MapOverlayRenderer () @property (strong,nonatomic) UIImage *image; @end @implementation MapOverlayRenderer - (instancetype)initWithOverlay:(id)overlay overlayImage:(UIImage *)overlayImage { self = [super initWithOverlay:overlay]; if (self) { _image = overlayImage; } return self; } - (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context { CGImageRef imageReference = self.image.CGImage; 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); } @end 

En mi UIViewController , estoy buscando el UIViewController animado y agregando la superposición llamando a un método que contiene el siguiente código:

 NSURLSession *session = [NSURLSession sharedSession]; [[session dataTaskWithURL:[NSURL URLWithString:radarUrl] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { self.radarImage = [UIImage animatedImageWithAnimatedGIFData:data]; //for animated radar image dispatch_async(dispatch_get_main_queue(), ^{ [self.mapView addOverlay:self.polygon]; }); }] resume]; 

Cualquier sugerencia sobre cómo animar un gif en una superposición de vista de mapa iOS 7 sería muy apreciada.

https://github.com/jhurray/iOS7AnimatedMapOverlay

esta es la mejor manera de animar superposiciones en iOS7

Como una superposición de vista de mapa tiene su dibujo en un CGContext , no se animará, es decir, un búfer que se dibuja y se traduce para ver los contenidos, en lugar de ser una parte normal de la jerarquía de vistas. Desafortunadamente, necesitará hacer uso de -setNeedsDisplayInMapRect:zoomScale: varias veces para solicitar animaciones. Este sistema es un poco menos flexible que iOS 6 y anteriores, lo que agregó vistas normales sobre el mapa.