gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 04:53:29 24 4
gpt4 key购买 nike

我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com