title: In iOS 7+ MKMapView calls mapView:didUpdateUserLocation: forever
body: <p>In my <code>MapView</code> in a button tap I run the following action:</p>
  
  <pre><code>- (IBAction)locate:(id)sender event:(UIEvent*)event {
      DLog(@"");
      if ([self.mapView respondsToSelector:@selector(userTrackingMode)]) {
          [self.mapView setUserTrackingMode:MKUserTrackingModeNone];
      }
      [self.mapView setShowsUserLocation:NO];
      [self.mapView setShowsUserLocation:YES];
  }
  </code></pre>
  
  <p>I see the <code>userLocation pin</code> and call the following method to change the map position:</p>
  
  <pre><code>- (void) resizeRegionToFitAllPins:(BOOL)includeUserLocation animated:(BOOL)animated {
      if ([self.annotations count] == 1) {
          NSObject&lt;MKAnnotation&gt; *annotation = [self.annotations objectAtIndex:0];
          BOOL isUserLocation = [annotation isKindOfClass:MKUserLocation.class];
          if ((includeUserLocation &amp;&amp; isUserLocation) ||
              isUserLocation == NO) {
              CLLocationCoordinate2D coordinate;
              coordinate.latitude = annotation.coordinate.latitude;
              coordinate.longitude = annotation.coordinate.longitude;
              [self setRegion:MKCoordinateRegionMake(coordinate, MKCoordinateSpanMake(0.001f, 0.001f)) animated:animated];
          }
      }
  }
  </code></pre>
  
  <p>My problem is that the map is updating the user's position forever (in loop).
  It is impossible to use the map after activating the user's location.
  What is necessary to make it stop updating the user's position and allow user to use map?</p>
  
  <p>The method <code>mapView:didUpdateUserLocation:</code> is called over and over again.
  I Put the <code>MKMapViewDelegate</code> on the interface, set the <code>self.mapView.delegate</code> to self and set the <code>mapViewWillStartLocatingUser:</code> and <code>mapViewDidStopLocatingUser:</code> with only a <code>Dlog(@"")</code> call;
  The <code>mapViewDidStopLocatingUser:</code> is not called ever.</p>
  
  <pre><code>- (void)mapView:(MKMapView *)map didUpdateUserLocation:(MKUserLocation *)userLocation {
      DLog(@"Resizing...");
      [self.mapView resizeRegionToFitAllPins:YES animated:YES];
      }
  }
  
  - (void)mapViewWillStartLocatingUser:(MKMapView *)mapView {
      DLog(@"");
  }
  
  - (void)mapViewDidStopLocatingUser:(MKMapView *)mapView {
      DLog(@"");
  }
  </code></pre>