【问题标题】:MKMapView userTrackingMode overridden by CLSqliteDatabaseManager被 CLSqliteDatabaseManager 覆盖的 MKMapView userTrackingMode
【发布时间】:2011-11-24 16:03:53
【问题描述】:

我在 UIViewController 的 viewLoaded 方法中设置 MKMapView 实例的 userTrackingMode。第一次加载视图时,我成功地将其设置为 MKUserTrackingModeFollowWithHeading。然而,每次视图加载时,虽然我再次将其值设置为 MKUserTrackingModeFollowWithHeading,但这几乎立即被 MKUserTrackingModeNone 覆盖。我继承了 MKMapView 并重写了 setUserTrackingMode,插入了一个断点,这样我就可以看到它是从哪里调用的。同样的事情发生在模拟器和设备上:

在模拟器上,当值设置为 MKUserTrackingModeNone 时,我从堆栈中得到以下信息:

在我的设备 (iPhone 4s) 上,我得到以下信息:

在我的应用程序中几乎没有其他事情发生,当然也没有任何事情直接触发要设置的属性。什么是 CLSqliteDatabaseManager?谷歌没有返回一个结果。在设备上究竟如何涉及 MKMapRectContainsRect?我使用的是 iOS 5.0。

【问题讨论】:

    标签: iphone objective-c ios mapkit core-location


    【解决方案1】:

    现在回答似乎为时已晚。但对于正在寻找答案的人来说,它可能仍然会有所帮助。

    我遇到了完全相同的问题。我突然明白了为什么。请加载您的 iOS 内置地图应用程序,然后单击左下角的小箭头按钮开始跟踪您的位置。只要你拖动地图。跟踪停止。同样的原因,如果您在代码中移动地图,MKMapView 属性 userTrackingMode 将自动重置为 MKUserTrackingModeNone

    在我的例子中,我在- (void)viewWillAppear:(BOOL)animated 中将userTrackingMode 设置为MKUserTrackingModeFollow 后调用了setCenterCoordinate。将代码mapView.userTrackingMode = MKUserTrackingModeFollow; 移动到最后,它运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      相关资源
      最近更新 更多