【问题标题】:MKMapView reload/refresh on 3.1.2 and upwardsMKMapView 在 3.1.2 及更高版本上重新加载/刷新
【发布时间】:2010-07-05 11:14:44
【问题描述】:

我知道很多人都遇到过类似的问题,有些人已经对它们进行了分类,有些人没有。基本上我需要一些方法来刷新地图,即获取mapViewDidFinishLoading 的回调。如果用户已经看到了显示的位置,则似乎地图是从缓存中加载的,并且没有调用 mapViewDidFinishLoading ,因为这会触发我的一些游戏代码。有谁知道如何在 ios 3.1.2 及更高版本上执行此操作? [类似于 [mapView reload] 的东西(如果它这么简单的话)。

非常感谢

朱尔斯

【问题讨论】:

  • 您找到问题的答案了吗?

标签: iphone cocoa-touch mkmapview


【解决方案1】:

我想地图的加载是由用户拖动地图触发的,因此您可以使用 mapView:regionDidChangeAnimated: 回调并在其中包含您的游戏代码。

【讨论】:

  • 感谢您的帮助,不幸的是,这就是问题所在。地图加载由连接到 IBAction 的按钮触发,IBAction 为地图提供了要显示的区域。我需要使用 mapDidFinishLoading 回调的原因是因为我有一个计时器,它只能在地图完全加载时启动。还有其他想法吗?非常感谢朱尔斯
  • 然后你可以使用 mapViewWillStartLoadingMap: 回调。如果 mapViewDidFinishLoading 没有被调用,我想也没有被调用。在 mapView:regionDidChangeAnimated 中启动计时器,在 mapViewWillStartLoadingMap: 中重新启动它,然后在 mapViewDidFinishLoading: 中重新启动它:这是一个好的解决方法吗?
  • 嗨,这也不起作用,因为地图委托函数都没有得到回调。这只发生在需要的位置已经在某个时候加载时,所以我真正需要做的是以某种方式重新加载地图或以某种方式刷新缓存?再次感谢朱尔斯
【解决方案2】:

不知道你是否还需要这个,但我遇到了类似的问题,即 viewForOverlay 没有被调用。实际上它最终被调用了,但对于我需要的东西来说为时已晚。

当我需要它时使用它更新 -

[self.map setVisibleMapRect:myMapRect];

【讨论】:

  • 嗨,我确实尝试过,但对我的情况没有帮助。最后我只是改变了我的游戏逻辑的工作方式,并不理想,但现在可以了。干杯
猜你喜欢
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
相关资源
最近更新 更多