title: ios mapkit closing annotation callouts by tapping the map
body: <p>I've got a mapkit app that places annotations on the map, when you press them, it shows the callout with the title attribute.</p>
  
  <p>This works fine, but the user cannot close them. They stay open until they tap another annotation. Can't I make it that the user can tap elsehwere on the map (or tap the annotation again) to close it? </p>
  
  <p>I had a feeling this was the default setting, so perhaps something I'm doing is stuffing it up? I have a gesture recognizer which I use to detect some map taps </p>
  
  <pre><code>    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                              initWithTarget:self action:@selector(handleTap:)];
  tap.numberOfTapsRequired = 1;
  
  [self.mapView addGestureRecognizer: tap];
  </code></pre>
  
  <p>which fires this:</p>
  
  <pre><code>- (void)handleTap:(UITapGestureRecognizer *)sender {     
  if (sender.state == UIGestureRecognizerStateEnded)  {   
  
  
      CGPoint tapPoint = [sender locationInView:sender.view.superview];
      CLLocationCoordinate2D coordinate = [self.mapView convertPoint: tapPoint toCoordinateFromView: self.mapView];
  
      if (pitStopMode &amp;&amp; !pitStopMade){
              pitStopMade = YES;
          InfoAnnotation *annotation = [[InfoAnnotation alloc]
                         initNewPitstopWithCoordinate:coordinate];
          NSLog(@" Created Pit Stop");
  
          annotation.draggable = NO;
          //place it on the map
          [self.mapView addAnnotation: annotation];
  
          self.instructionLabel.text = @"Tap button again to remove";
          annotation.creatorId = self.localUser.deviceId;
          //send it to the server
          [annotation updateLocationWithServerForConvoy: self.convoyCode];        
  
          [annotation release];
  
      }  
  
      if (hazardMode &amp;&amp; !hazardMade){
              hazardMade = YES;
          InfoAnnotation *annotation  = [[InfoAnnotation alloc]
                         initNewHazardWithCoordinate:coordinate];         
          NSLog(@" Created Hazard");
  
          annotation.draggable = NO;
          //place it on the map
          [self.mapView addAnnotation: annotation];
  
          self.instructionLabel.text = @"Tap button again to remove";
          annotation.creatorId = self.localUser.deviceId;
          //send it to the server
          [annotation updateLocationWithServerForConvoy: self.convoyCode];        
  
          [annotation release];
  
  
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Is there anything I have to do to also let these taps go through to the mapview? Dragging and tapping on annotations works fine though so I'm not sure if this is what's causing it? </p>
  
  <p>is there an option I'm missing, or do I have to try and implement this manually? </p>