MKMapView ottiene i suoi panorami pin dalla sua metodo delegato mapView:viewForAnnotation: quindi bisogna:
- Impostare la vista del regolatore come delegato della mappa.
- Implementare mapView: viewForAnnotation: nel controller.
impostare il vostro controller come delegato
@interface MapViewController : UIViewController <MKMapViewDelegate>
Mark l'interfaccia con il protocollo delegato. Questo consente di impostare il controller come delegato di MKMapView in Interface Builder (IB). Apri il file .xib contenente la mappa, fai clic con il tasto destro su MKMapView e trascina la presa delegate
sul controller.
Se si preferisce utilizzare il codice anziché IB, aggiungere self.yourMapView.delegate=self;
nel metodo viewDidLoad del controller. Il risultato sarà lo stesso.
Implementare MapView: viewForAnnotation:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
// this part is boilerplate code used to create or reuse a pin annotation
static NSString *viewId = @"MKPinAnnotationView";
MKPinAnnotationView *annotationView = (MKPinAnnotationView*)
[self.mapView dequeueReusableAnnotationViewWithIdentifier:viewId];
if (annotationView == nil) {
annotationView = [[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:viewId] autorelease];
}
// set your custom image
annotationView.image = [UIImage imageNamed:@"emoji-ghost.png"];
return annotationView;
}
Puoi indicarmi un esempio di come farlo? Sono nuovo all'obiettivo c. Grazie – 3sl