Animating an MKOverlayView

房东的猫 提交于 2019-11-30 12:50:43

问题


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?


回答1:


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:.




回答2:


Sample code how to animate a circle:

http://yickhong-ios.blogspot.com/2012/04/animated-circle-on-mkmapview.html




回答3:


Is there a callback when all the tiles have finished loading? If so, you could go with double buffering, and update the view offscreen, and then switch it in.



来源:https://stackoverflow.com/questions/4182305/animating-an-mkoverlayview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!