2015-03-02 2 views
0

У меня MAPview и его метод делегатанужно MAPview не updateLocation

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 
    }) 
} 

и она работает некоторый случайный путь. он выполняется при загрузке представлений, и, когда я прокручиваю карту в другую страну или город и увеличиваю масштаб, она может (иногда, теперь всегда) возвращать меня в мое текущее местоположение. Любопытно, что мое текущее местоположение не изменилось, и делегат не должен выполнять. Мне нужно как-то эту вещь НЕ СЛУЧАТЬ. Поэтому я хочу, чтобы моя карта увеличивалась до текущего местоположения только тогда, когда менялось местоположение, иначе мне нужно иметь свободную карту для прокрутки.

ответ

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!).

Обратите внимание, что вам необходимо повторно закрепить его, если вам нужно обновить центр карты с помощью вашей координаты без ручной прокрутки к фактической позиции.

+0

вы не понимали, что мне нужно и что нужно делать. Я хочу использовать делегатов и весь этот беспорядок, но только в том случае, если пользовательская локация ДЕЙСТВИТЕЛЬНО обновляется, а не когда я прокручиваю карту. Ваш ответ о другом случае –

Смежные вопросы