米国の地図上で一連のレーダー画像をアニメーション化しようとしています。NOAA の Web サイトからダウンロードしたレーダー gif 画像のリストがあります。
mapkit オーバーレイに一連の画像のアニメーションを実装するにはどうすればよいですか? ここでこれらの投稿を見てきました: アニメーション化された MKOverlayView および Animating an MKOverlayView
しかし、解決策を見つけることができませんでした。
米国の地図上で一連のレーダー画像をアニメーション化しようとしています。NOAA の Web サイトからダウンロードしたレーダー gif 画像のリストがあります。
mapkit オーバーレイに一連の画像のアニメーションを実装するにはどうすればよいですか? ここでこれらの投稿を見てきました: アニメーション化された MKOverlayView および Animating an MKOverlayView
しかし、解決策を見つけることができませんでした。
これがiOS7に最適なソリューションです。MKOverlayRenderer
にアニメーションを追加することは非常に困難でしたMKMapkit
。このプロジェクトの例に従ってください。
ビューコントローラーでタイマーを作成することで問題を解決しました。タイマーが起動するたびに、カスタム 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);
}