2016-04-08 17 views
3

Ich habe ein Problem, bei dem die Karte automatisch ausgezoomt wird, wenn der Benutzer auf die Schaltfläche klickt, die die Ortung des Benutzers nachverfolgt der Ankerknopf einmal.Behalten Sie die Karten-Zoomstufe beim Verfolgen des Benutzerstandorts bei

Ich habe versucht, die Region erneut einzustellen, bevor ich den Tracking-Modus eingestellt habe, aber es hat nicht funktioniert. Ich bemerke jedoch eine Sache. Es passiert nur, wenn der Benutzer die Zoomstufe nicht ändert, d. H. Wenn ein Benutzer die Karte einklemmt, bevor er auf die Schaltfläche klickt, wird die Zoomstufe der Karte beibehalten.

Ich habe versucht, das im Code nachzuahmen, aber bisher habe ich kein Glück.

Meine Frage ist einfach: Gibt es eine Möglichkeit, die Standard-Zoomstufe für den Benutzer-Tracking-Modus einzustellen? Wenn nicht, kann ich die Prise eines Benutzers irgendwie nachahmen (vielleicht eine Gestenerkenneraktion?), Um den Bereich zu erzwingen?

Vielen Dank im Voraus!

Hinweis: Ich habe auf Stackoverflow nach der Antwort gesucht und nur Antworten wie this gefunden.

Antwort

0

Ich verwendete den Benutzer-Tracking-Modus und zoomte, um das Design meiner Apps zu schließen. Wenn ich Ihre Frage richtig verstehe, suchen Sie genau danach.

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

    } 

} 
Verwandte Themen