需要mapView不要更新位置

时间:2015-03-02 15:02:49

标签: ios swift mkmapview cllocation

我有mapView及其委托方法

func mapView(mapView: MKMapView!, didUpdateUserLocation userLocation: MKUserLocation!) {
    mapView.userTrackingMode = MKUserTrackingMode.None
    var eye = CLLocationCoordinate2DMake(userLocation.coordinate.latitude, userLocation.coordinate.longitude)
    var cam = MKMapCamera(lookingAtCenterCoordinate: eye, fromEyeCoordinate: eye, eyeAltitude: 10000)

    UIView.animateWithDuration(1, animations: { () -> Void in
        mapView.camera = cam
    })
}

它以随机的方式工作。它在视图加载时执行,而当我将地图滚动到另一个国家或城市并进行缩放时,它可以(有时,现在总是)将我返回到当前位置。这很奇怪,因为我当前的位置没有变化,代表不应该执行。 我需要以某种方式做这件事不要发生。所以我想让我的地图只有在位置改变时才能缩放到当前位置,换句话说我需要有免费的滚动地图。

1 个答案:

答案 0 :(得分:0)

您必须将控制器设置为CLLocationManagerDelegate,然后声明一个变量,如:

var locationManager:CLLocationManager = CLLocationManager()

然后在你的viewDidLoad方法中:

    override func viewDidLoad() {
    super.viewDidLoad()
    self.locationManager.delegate = self
    self.locationManager.stopUpdatingLocation()

应阻止致电func mapView(mapView: MKMapView!, didUpdateUserLocation userLocation: MKUserLocation!)

注意您必须重新装入它,以防您需要使用坐标更新地图中心而无需手动滚动到实际位置。