自动调用用户位置

时间:2016-08-03 15:24:07

标签: ios swift mapkit userlocation

在我的代码中,我需要初始化我的用户位置:它工作正常。

但每当我想改变我的位置时(通过选择地址或扫描屏幕)我的应用程序会将我带回我的用户位置。

我在that post找到了一些答案。 但是,我不打电话给didUpdateUserLocation()。所以我不知道该怎么做。

我的应用是否经常拨打ViewDidLoad()

这是我的代码,我在其中初始化我的位置。

var usrLocation: CLLocationManager!

override func viewDidLoad() {
    super.viewDidLoad()
    if (CLLocationManager.locationServicesEnabled()) {
        usrLocation = CLLocationManager()
        usrLocation.delegate = self
        usrLocation.requestAlwaysAuthorization()
        usrLocation.requestLocation()
        usrLocation.startUpdatingLocation()
    }
    mapView.delegate = self
}

此外,我不能只删除我的usrLocation.requestLocation()功能,我需要在启动应用时以我的用户为中心。我想在其他地方调用它,但我不知道在哪里?

2 个答案:

答案 0 :(得分:1)

你已经实施了 usrLocation.startUpdatingLocation()

这是继续更新位置,所以一旦你指向另一个位置,它就会更新用户位置。

删除此行代码将起作用。

答案 1 :(得分:0)

所以,正如丹所说,问题在于我不应该致电requestLocation()startUpdatingLocation().

所以现在我的代码就是这样,它完美无缺:

var usrLocation: CLLocationManager!

override func viewDidLoad() {
    super.viewDidLoad()
    if (CLLocationManager.locationServicesEnabled()) {
        usrLocation = CLLocationManager()
        usrLocation.delegate = self
        usrLocation.requestAlwaysAuthorization()
        usrLocation.requestLocation()
    }
    mapView.delegate = self
}