iOS MKMapView将用户位置设置为.followWithHeading无法放大用户位置

时间:2017-05-28 00:56:25

标签: ios swift mkmapview mkusertrackingmode

我正在创建一个基于地图的应用程序,正如许多人所做的那样,它包含一个按钮,理论上该按钮将地图重新​​定位在用户的位置并放大用户(如果缩放级别已更改)。目前,在viewDidLoad()中我有一行:

mapView.setUserTrackingMode(MKUserTrackingMode.followWithHeading, animated: true)

成功设置了用户跟踪模式和舒适的缩放级别。然后,当用户平移时,跟踪模式设置为无,因为文档说明,这就是我想要的。但是,在平移之后,当从包含此完全相同的行的按钮调用IBAction时,mapview将重新定位用户的位置并恢复跟踪,但不会缩小用户,除非mapView已被大幅缩小(到州或国家一级)。我该怎么做才能解决这个问题?我已尝试根据用户位置手动设置区域,但发现这会干扰用户跟踪。 (我将IBAction设置为调用以下函数)

    func centerMapOnLocation(location: CLLocation, animated: Bool){
    let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, 1000, 1000)
    mapView.setRegion(coordinateRegion, animated: animated)
}

但调用此函数似乎会将用户跟踪模式重置为无,无论用户跟踪模式是在函数调用之前还是之后更改。谢谢你的帮助!

0 个答案:

没有答案