如何在切换跟踪模式时旋转iOS MKMapView以使其朝北?

时间:2012-06-09 18:33:35

标签: ios mkmapview ipad-2

我正在使用iPad应用程序(iOS 5.1),我使用MKMapView在我的应用程序中显示地图。

我使用MKUserTrackingModeNone,MKUserTrackingModeFollow,MKUserTrackingModeFollowWithHeading在三种不同的地图方向模式之间切换,这是有效的。

然而,当我从MKUserTrackingModeFollowWithHeading切换到MKUserTrackingModeNone时,我的地图方向没有重置为朝北方向(地图上的北方位于屏幕顶部)。

在ipad上的内置地图应用中,流程如下:

  1. 启动应用时,它处于模式MKUserTrackingModeNone并且面向北方
  2. 当您切换方向模式时,它会更改为MKUserTrackingModeFollow,方向仍然是北方。
  3. 再次切换时,它会更改为MKUserTrackingModeFollowWithHeading,地图会根据您面向/指向iPad的方向旋转。
  4. 当你再次切换方向时,它会回到MKUserTrackingModeNone,并且地图很好地旋转回北向。
  5. 我希望我的应用程序在切换模式时的方向相同,但是当我执行上面的步骤4并且从MKUserTrackingModeFollowWithHeading切换到MKUserTrackingModeNone 时,方向保持不变就在制作方向开关之前,而不是向北方向旋转。

    我正在使用放置在工具栏中的标准MKUserTrackingBarButtonItem控件进行方向开关。

    有关如何解决此问题的任何想法?

    谢谢!

2 个答案:

答案 0 :(得分:0)

您是否使用标准的iOS按钮栏项来执行此操作?我的应用程序确实如此,只要我从followWithHeading到non,它就会旋转回到北方。

答案 1 :(得分:0)

这是一个有效的快速解决方案,虽然不是很优雅:

https://stackoverflow.com/a/16576802/2077435