【问题标题】:Retain map zoom level while tracking user location在跟踪用户位置时保持地图缩放级别
【发布时间】:2016-04-08 13:55:37
【问题描述】:
我遇到了一个问题,当用户点击按钮时地图会自动缩小,该按钮将开始跟踪用户的位置变化,就像您点击一次锚按钮时 Apple Map 应用所做的那样。
我在设置跟踪模式之前尝试再次设置区域,但没有成功。我确实注意到一件事。仅当用户未更改缩放级别时才会发生这种情况,即,如果用户在点击按钮之前捏住地图,则地图的缩放级别将被保留。
我试图在代码中模仿它,但到目前为止,我没有运气。
我的问题很简单:有没有办法为用户跟踪模式设置默认缩放级别?如果没有,我能否以某种方式模仿用户的捏合(可能是手势识别器操作?)来强制设置范围?
提前致谢!
注意:我在 Stackoverflow 上搜索过答案,只找到了类似 this 的答案。
【问题讨论】:
标签:
ios
swift
mkmapview
mapkit
mkusertrackingmode
【解决方案1】:
我正在使用用户跟踪模式,它会放大以关闭我的应用程序设计。如果我正确理解你的问题,这就是你要找的。p>
@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)
}
}