【问题标题】:MKMapView Loads before LocationManager has got user location - cannot set Region to center on user locationMKMapView 在 LocationManager 获得用户位置之前加载 - 无法将区域设置为以用户位置为中心
【发布时间】:2013-01-30 17:25:59
【问题描述】:

我有一个 iOS 应用程序,我在应用程序启动时加载一个 MKMapView。我想将“MKCoordinateRegion”的中心设置为用户纬度/经度。但是,CLLocation Manager 实例在 MKMapView 加载之前不会更新用户位置。

现在我正在将地图中心坐标硬编码到应用程序中。但我想知道是否有人可以提出更好的方法来处理这种情况。

我可以想到两种方法,但我不喜欢其中任何一种:

1) 使用活动指示器停止启动 MKMapView 2) 使用硬编码的位置启动 MKMapview,然后在用户位置可用时立即将 mapview 区域设置为以该位置为中心

有什么建议吗?

【问题讨论】:

    标签: ios mkmapview cllocationmanager userlocation mkcoordinateregion


    【解决方案1】:

    当您进入后台或关闭应用程序时,存储最后已知的纬度/经度。
    在开始中心地图视图到最后一个已知位置。
    位置管理器发送更新的位置后,立即更新地图中心。

    【讨论】:

      【解决方案2】:

      做苹果做的事。开始真的很远缩小,可能会在屏幕上显示“正在扫描位置”的消息,然后当位置信息可用时放大。

      【讨论】:

      • 你能给我一个使用这种方法的应用程序的例子吗?谢谢
      • Apple 的地图程序完成了放大后的事情。扫描位置是我添加的,因为您说您建议的是活动指示器,我认为最好告诉用户您要指示的活动。
      • 啊,我明白了。好的我明白了。谢谢。我喜欢这种方法。
      【解决方案3】:

      mapviewuserTrackingMode 属性设置为MKUserTrackingModeFollow。您不需要位置管理器,mapView 会为您完成。当您以后想要重新定位地图时,请将属性设置为 MKUserTrackingModeNone,然后重新定位您的地图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 1970-01-01
        相关资源
        最近更新 更多