2013-09-28 64 views

回答

0

我通過在我的視圖控制器中創建一個計時器解決了這個問題。每次計時器激發時,都會爲我的自定義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); 
} 
1

這是iOS7的最佳解決方案。 MKOverlayRenderer使向MKMapkit添加動畫非常困難。按照project的示例進行操作。