title: MKMapView with custom pins return to red standard pins on reload
body: <p>I have an MKMapView that I add pins to. They load correctly with their relevant graphics but if I zoom in and zoom back out they loose their graphic and turn into a standard red pin with the only customisation being the pin name (even my disclosure indicator disappear).</p>
  
  <p>So far to try and fix it I've tried:
  Tried png’s, checked on faster device, Changed everything from MKPinAnnotation to MKAnnotation, returning to a normal MKAnnotation instead of my custom CBAnnotation, Various sample codes for loading custom pins, Lowered quality of map overlay in case it was a loading issue but still an issue.</p>
  
  <pre><code>- (void)addPins {
      mapPinsArray = [[NSMutableArray alloc] init];
  
      for (MapPoint *mappoint in mapPointsArray) {
          CBAnnotation *annotation = [[CBAnnotation alloc] init];
          annotation.coordinate = CLLocationCoordinate2DMake(mappoint.loclat, mappoint.loclong);
          annotation.title = mappoint.stopAreaName;
          annotation.mapPoint = mappoint;
          [mapPinsArray addObject:annotation];
          [self.myMapView addAnnotation:annotation];
      }
  }
  
  
  - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(CBAnnotation *)annotation {
  
      if ([annotation isKindOfClass:[MKUserLocation class]]) {
          //do nothing
          return nil;
      } else {
          MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"trailPoint"];
          annotationView.canShowCallout = YES;
  
          ButtonWithData *accessoryViewButton = [[ButtonWithData alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
          [accessoryViewButton setBackgroundImage:[UIImage imageNamed:@"right_arrow"] forState:UIControlStateNormal];
          accessoryViewButton.buttonData = annotation.mapPoint;
          [accessoryViewButton addTarget:self action:@selector(disclosureButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
          annotationView.rightCalloutAccessoryView = accessoryViewButton;
  
          if (![[NSUserDefaults standardUserDefaults] boolForKey:annotation.mapPoint.stopAnimalName]) {
              annotationView.image = [annotation.mapPoint lockedPinImage];
          } else {
              annotationView.image = [annotation.mapPoint unlockedPinImage];
          }
  
          return annotationView;
      }
  }
  </code></pre>