4

我正在创建一个基于地图的应用程序,与许多人一样,它包含一个按钮,理论上该按钮将地图重新​​定位在用户位置并放大用户(如果缩放级别已更改)。目前,在 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)
}

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

4

0 回答 0