9

我有一个 MKOverlayView,它将动画雷达数据显示为一系列图像。我遇到的问题是雷达图像被 MapKit 切成小块。要交换图像,我有一个计时器,它调用一个更新函数,该函数在我的叠加层中设置当前图像,然后调用以下命令

[myRadarOverlayView setNeedsDisplayInMapRect:self.mapView.visibleMapRect];

叠加层会更新,但一次只更新一个图块,所以我会得到一个断断续续的动画。关于如何使所有瓷砖同时动画(即交换图像)的任何想法?

4

3 回答 3

6

我通过添加 UIImageView 作为 MKOverlayView 的子视图解决了这个问题。

  • 要制作动画,请使用普通的 drawMapRect:zoomScale:inContext: 停止绘制(通过实例变量/属性标志)并改为绘制到 UIImageView(到 animationImages 属性),然后使用 startAnimating。

  • 您可以通过重新初始化 UIImageView 以响应 mapView:regionDidChangeAnimated: 来处理平移和缩放。

于 2011-07-05T18:13:55.897 回答
4

如何为圆设置动画的示例代码:

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

于 2012-05-20T15:55:28.263 回答
0

所有图块加载完成后是否有回调?如果是这样,您可以使用双缓冲,并在屏幕外更新视图,然后将其切换。

于 2011-04-26T18:22:16.683 回答