title: How to detect zoom's effect on the map in Swift
body: <p>I am using <code>regionDidChangeAnimated</code> for my mapView. I want to detect when user zoom's or drag's a map. Drag is being detected, but I can't seem to detect when user zoom's the map. I tried to use:</p>
  
  <pre><code>func mapView(mapView: MKMapView, regionWillChangeAnimated animated: Bool) {
      print("region will change")
  }
  </code></pre>
  
  <p>But when I zoom my map it does not work. </p>
  
  <p>Full code:</p>
  
  <pre><code>var locationManager: CLLocationManager = CLLocationManager()
  var startLocation: CLLocation!
  
  @IBOutlet weak var mapView: MKMapView!
  
  override func viewDidLoad() {
      super.viewDidLoad()
  
      //get current location
      locationManager.desiredAccuracy = kCLLocationAccuracyBest
      locationManager.delegate = self
      locationManager.requestWhenInUseAuthorization()
      locationManager.startUpdatingLocation()
  
      self.mapView.showsUserLocation = true
      startLocation = nil
  
      let mapDragRecognizer = UIPanGestureRecognizer(target: self, action: "didDragMap:")
      mapDragRecognizer.delegate = self
      self.mapView.addGestureRecognizer(mapDragRecognizer)
      self.mapView.pitchEnabled = true
      self.mapView.showsBuildings = true
  
  }
  
  func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [CLLocation]) {
      let location = locations.last
      let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
      let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.05, longitudeDelta: 0.05))
      mapView.setRegion(region, animated: false)
      let currentLocX = String(format: "%.4f", location!.coordinate.latitude)
      let currentLocY = String(format: "%.4f", location!.coordinate.longitude)
  
      self.locationManager.stopUpdatingLocation()
  }
  
  func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -&gt; Bool {
      return true
  }
  
  func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
      print("Errors: " + error.localizedDescription)
  }
  
  func didDragMap(gestureRecognizer: UIGestureRecognizer) {
      print("Drag")
  }
  
  func mapView(mapView: MKMapView, regionWillChangeAnimated animated: Bool) {
      print("Zoom")
  }
  </code></pre>