将自动调用“用户位置”



在我的代码中,我需要初始化我的用户Location:它工作得很好。

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

我在那篇帖子上找到了一些答案。但是,我不叫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()功能,我需要在应用程序启动时以我的用户为中心。我想在其他地方叫它,但我不知道在哪里?

您已经实现了
usrLocation.startUpdatingLocation()

这是不断更新的位置,所以只要你指向另一个位置,它就会更新用户位置。

删除这一行,代码就会起作用。

所以,正如dan所说,问题是我不应该调用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
}

相关内容

  • 没有找到相关文章

最新更新