wig*_*ing 8 objective-c uiimageview mapkit mkoverlay ios7
我试图在叠加中显示动画gif MKMapView.使用MKOverlayRenderer.创建叠加层.动画中的iOS 7的GIF,我使用的是UIImage+animatedGIF贴类别这里 GitHub上.
使用类别,动画gif的图像在叠加中显示得很好; 但是,gif没有动画.我没有问题使用类别来动画gif中的gif,UIImageView但它似乎无法在地图视图叠加中正常工作.
如何使用此类别将动画gif放置在地图视图叠加层中?
要么...
有没有办法UIImageView在覆盖中放置一个可以通过设置UIImageView动画gif 来解决我的问题?
我的叠加渲染器子类如下:
MapOverlayRenderer.h
#import <MapKit/MapKit.h>
@interface MapOverlayRenderer : MKOverlayRenderer
- (instancetype)initWithOverlay:(id<MKOverlay>)overlay overlayImage:(UIImage *)overlayImage;
@end
Run Code Online (Sandbox Code Playgroud)
MapOverlayRenderer.m
#import "MapOverlayRenderer.h"
@interface MapOverlayRenderer ()
@property (strong,nonatomic) UIImage *image;
@end
@implementation MapOverlayRenderer
- (instancetype)initWithOverlay:(id<MKOverlay>)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
Run Code Online (Sandbox Code Playgroud)
在我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];
Run Code Online (Sandbox Code Playgroud)
任何有关如何在iOS 7地图视图叠加层中设置gif动画的建议都将非常感激.
因为地图视图叠加层将您的绘图放在 a 中CGContext,所以它不会动画——这是一个被绘制并转换为视图内容的缓冲区,而不是作为视图层次结构的正常部分。不幸的是,您将需要反复使用-setNeedsDisplayInMapRect:zoomScale:来请求动画。该系统比 iOS 6 及之前的系统灵活性稍差,后者在地图顶部添加了普通视图。
| 归档时间: |
|
| 查看次数: |
3408 次 |
| 最近记录: |