Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Animating an MKOverlayView

I have an MKOverlayView that displays animated radar data as a series of images. The issue I have is that the radar images are chopped into tiles by MapKit. To swap images I have a timer that calls an update function which sets the current image in my overlay and then calls the following

[myRadarOverlayView setNeedsDisplayInMapRect:self.mapView.visibleMapRect];

The overlay updates, but does so one tile at a time so I get a choppy animation. Any ideas about how make all the tiles animate (i.e. swap images) at the exact same time?

like image 287
Aaron Avatar asked Nov 15 '10 07:11

Aaron


1 Answers

I solved this by adding a UIImageView as a subview of the MKOverlayView.

  • To animate, stop drawing with the normal drawMapRect:zoomScale:inContext: (via an instance variable/property flag) and draw to the UIImageView instead (to the animationImages property), then use startAnimating.

  • You can handle panning and zooming by reinitializing the UIImageView in response to mapView:regionDidChangeAnimated:.

like image 134
shawkinaw Avatar answered Nov 16 '22 02:11

shawkinaw