1

米国の地図上で一連のレーダー画像をアニメーション化しようとしています。NOAA の Web サイトからダウンロードしたレーダー gif 画像のリストがあります。

mapkit オーバーレイに一連の画像のアニメーションを実装するにはどうすればよいですか? ここでこれらの投稿を見てきました: アニメーション化された MKOverlayView および Animating an MKOverlayView

しかし、解決策を見つけることができませんでした。

4

3 に答える 3

1

これがiOS7に最適なソリューションです。MKOverlayRendererにアニメーションを追加することは非常に困難でしたMKMapkitこのプロジェクトの例に従ってください。

于 2014-01-22T19:23:55.507 に答える
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);
}
于 2014-05-14T16:18:11.450 に答える