我遇到了启用地图自动跟踪用户标题的问题。我已经请求了所有必要的授权,并且能够捕获用户位置信息。我目前正在调用此功能,以用户的位置为中心,它正在运行。如果我添加包含map.setUserTrackingMode的行,则会出错。
我错过了什么吗?
我正在使用的代码:
func centerMapOnLocation(location: CLLocation) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, regionRadius, regionRadius)
map.setRegion(coordinateRegion, animated: true)
map.setUserTrackingMode(MKUserTrackingMode.FollowWithHeading, animated: true)
}
代码调用此函数:
func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) {
if let loc = userLocation.location {
centerMapOnLocation(loc)
}
}
答案 0 :(得分:0)
可能是setUserTrackingMode干扰了setRegion。两种方法都将地图置于中心位置,尝试推迟跟踪模式的设置,这也是https://stackoverflow.com/a/16617914/5806210的建议,或者您也可以使用特殊按钮MKUserTrackingBarButtonItem实现跟踪模式。