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

Retain map zoom level while tracking user location

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

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

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

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

提前致谢!

注意:我已经在Stackoverflow上搜索了答案,仅找到了这样的答案。


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 @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)

    }

}