在跟踪用户位置时保留地图缩放级别

时间:2016-04-08 13:55:37

标签: ios swift mkmapview mapkit mkusertrackingmode

我遇到一个问题,当用户点击按钮时会自动缩小地图,该按钮将开始跟踪用户的位置变化,就像Apple Map应用程序在您点击一次锚点按钮时所做的那样。

在设置跟踪模式之前,我尝试再次设置区域,但它不起作用。我确实注意到了一件事。只有当用户没有改变缩放级别时才会发生这种情况,即,如果用户在按下按钮之前捏住地图,则会保留地图的缩放级别。

我试图在代码中模仿,但到目前为止,我没有运气。

我的问题很简单:有没有办法为用户跟踪模式设置默认缩放级别?如果没有,我可以以某种方式模仿用户的捏(可能是手势识别器动作?)来强制设置范围吗?

提前致谢!

注意:我在Stackoverflow上搜索了答案,但只找到了this之类的答案。

1 个答案:

答案 0 :(得分:0)

我正在使用用户跟踪模式,它放大了关闭我的应用程序设计。如果我理解你的问题,这就是你正在寻找的。

 @IBAction func getUserLocationPressed(_ sender: AnyObject) {

 if CLLocationManager.authorizationStatus() == .authorizedWhenInUse {

        let span = MKCoordinateSpanMake(1.0, 1.0)

        let location = CLLocationCoordinate2D(latitude: mapView.userLocation.coordinate.latitude, longitude: mapView.userLocation.coordinate.longitude)

        let coordinateRegion = MKCoordinateRegion(center: location, span: span)

        mapView.setRegion(coordinateRegion, animated: true)

    }

}