我試圖在美國地圖上爲一系列雷達圖像製作動畫。我有從NOAA網站下載的雷達gif圖像列表。通過mapkit覆蓋的UIImage動畫
如何在mapkit Overlay上實現一系列圖像的動畫? 我在這裏看到這些帖子: Animated MKOverlayView 和 Animating an MKOverlayView
,但無法找到一個解決方案。
我試圖在美國地圖上爲一系列雷達圖像製作動畫。我有從NOAA網站下載的雷達gif圖像列表。通過mapkit覆蓋的UIImage動畫
如何在mapkit Overlay上實現一系列圖像的動畫? 我在這裏看到這些帖子: Animated MKOverlayView 和 Animating an MKOverlayView
,但無法找到一個解決方案。
我通過在我的視圖控制器中創建一個計時器解決了這個問題。每次計時器激發時,都會爲我的自定義MKOverlayRenderer調用setNeedsDisplay方法。在渲染器子類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);
}
這是iOS7的最佳解決方案。 MKOverlayRenderer
使向MKMapkit
添加動畫非常困難。按照project的示例進行操作。