我试图在叠加中显示动画gif MKMapView
.使用MKOverlayRenderer
.创建叠加层.动画中的iOS 7的GIF,我使用的是UIImage+animatedGIF
贴类别这里 GitHub上.
使用类别,动画gif的图像在叠加中显示得很好; 但是,gif没有动画.我没有问题使用类别来动画gif中的gif,UIImageView
但它似乎无法在地图视图叠加中正常工作.
如何使用此类别将动画gif放置在地图视图叠加层中?
要么...
有没有办法UIImageView
在覆盖中放置一个可以通过设置UIImageView
动画gif 来解决我的问题?
我的叠加渲染器子类如下:
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
在我UIViewController
,我正在获取动画gif并通过调用包含以下代码的方法添加叠加层:
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];
任何有关如何在iOS 7地图视图叠加层中设置gif动画的建议都将非常感激.