ios - 何时使用 MKMapView 的 MKUserTrackingMode vs 位置管理器的开始更新位置?

标签 ios swift swift3 mapkit cllocationmanager

我正在制作一个跟踪用户位置的应用程序,目前我正在使用以下代码执行此操作(一旦用户授权跟踪其位置):

 override func viewDidLoad() {

    super.viewDidLoad()

    // set map View delegate
    mapView.delegate = self

    // turn on user tracking mode to follow user

    if tracking == true {
    mapView.userTrackingMode = MKUserTrackingMode.follow

    } else {
         mapView.userTrackingMode = MKUserTrackingMode.none
    }


}

这似乎可以很好地跟踪用户的位置,我想知道何时使用它以及何时使用 locationManager.startUpdatingLocation()stopUpdatingLocation() .

最佳答案

当您的唯一目的是更新 map 时,您可以使用 userTrackingMode。但有时我们希望用户位置用于其他目的(例如,将其记录在某个数据库中,用它来查看我们可能提供哪些商店和/或基于位置的特价优惠等)。事实上,本地图可能根本不显示或至少尚未显示时,我们可能会使用 CLLocationManager

因此,如果您只关心更新 map ,那么您可以使用userTrackingMode。但如果您关心独立于任何视觉 map 的位置,请使用 CLLocationManager。

关于ios - 何时使用 MKMapView 的 MKUserTrackingMode vs 位置管理器的开始更新位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40435307/

相关文章:

ios - 有了 MainViewController,如何在 MainVC 中与实际的 UIContainerViews 通信?

ios - 与在 Interface Builder 中使用自动布局相比,SnapKit 有哪些优势?

ios - 获取碰撞点时遇到问题

ios - NSKeyedUnarchiver 在第二次运行时崩溃了 swift 3

ios - 在 App Delegate 之外的 ViewController 中注册解析远程通知

ios - 在 Swift 4 中滚动 UITableView 时如何更新 UISlider 值

ios - Uicollectionview 单元格宽度问题 iOS 10

ios - 在 UIViewControllerAnimatedTransitioning 委托(delegate)中,transitionContext.fromViewController 为 nil

ios - 在 Swift 3 中以编程方式使用 ScrollView

json - 在 Swift 3 中解析 Json 文件