iphone - 从 MKUserTrackingModeFollowWithHeading 切换模式时如何始终保持 iOS 6 中的 MKMapView 朝北

标签 iphone ios objective-c mkmapview android-mapview

我正在使用 MKUserTrackingModeNoneMKUserTrackingModeFollowMKUserTrackingModeFollowWithHeading 在三种不同的map 方向模式之间切换,这有效.

但是,当从 MKUserTrackingModeFollowWithHeading 切换到 MKUserTrackingModeNone 时,我遇到了一个问题, map 的方向没有重置为朝北的方向( map 上的北方在屏幕顶部)

iphone/ipad的内置 map 应用上,流程是这样的:

当您启动应用程序时,它处于 MKUserTrackingModeNone 模式并且是北向的 当您切换方向模式时,它会更改为 MKUserTrackingModeFollow,并且方向仍然是北方。

当您再次切换时,它会变为 MKUserTrackingModeFollowWithHeading,并且 map 会根据您面对/指向 iPhone 的方向旋转。

当您再次切换方向时,它会返回到 MKUserTrackingModeNone, map 会很好地旋转回北方。

我希望我的应用程序在切换模式时在方向方面以相同的方式运行,但是当我按照上面的第 4 步执行操作并从 MKUserTrackingModeFollowWithHeading 切换到 MKUserTrackingModeNone,方向保持在进行方向切换之前的状态,而不是旋转回北方向。

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

谁能帮我解决这个问题?

最佳答案

我在运行 iOS 6.1.4 的 iPhone 5 上也遇到了这个问题。我使用这个简单但丑陋的快速修复来强制 map View 旋转回北:

-(void)someMethod
{
    // Currently in MKUserTrackingModeFollowWithHeading mode

    // Set tracking mode back to MKUserTrackingModeFollow
    [_mapView setUserTrackingMode:MKUserTrackingModeFollow];

    // After a short delay, set mode to MKUserTrackingModeNone
    [self performSelector:@selector(mapViewTrackingModeNone)
               withObject:nil
               afterDelay:0.2];

}

- (void)mapViewTrackingModeNone
{
    [_mapView setUserTrackingMode:MKUserTrackingModeNone];

    // Bang! The map rotates back to North-Up
}

可能有更好的方法来做到这一点,但我还没有找到。

关于iphone - 从 MKUserTrackingModeFollowWithHeading 切换模式时如何始终保持 iOS 6 中的 MKMapView 朝北,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15984500/

相关文章:

java - 从 Servlet 下载带有附加数据的 PDF 文件

javascript - 如何检查当前文件是否是javascript中的主文件(iOS Instruments UI Automator)

ios - 无法将 dSYM 文件上传到 Fabric Crashlytics

ios - IOS捏合手势的手势绑定(bind)限制

iphone - 构建 NSObject 以将 ABRecordRef 数据保存到本地

ios - 有没有办法知道 iOS 是否以及为什么终止您的应用程序?

objective-c - 在 View Controller 之间传递字典

objective-c - 有没有办法忽略 objective-c 中的 uitouch?

ios - iOS 中的 "Fill button"动画

ios - 如何从外部应用程序在 iPhone 上启动 Yandex Maps 应用程序?