2012-12-12 8 views
8

personalizzato creo una consuetudine MKAnnoationView come segue:Posizionamento un MKAnnotationView

- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    static NSString* AnnotationIdentifier = @"AnnotationIdentifier"; 
    MKAnnotationView* customPinView = [[MKAnnotationView alloc] 
              initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier]; 

    UIImage *pinImage = [PowerPlantAnnotation getAnnotationImageForEnergySource:((PowerPlantAnnotation*)annotation).energySource]; 
    customPinView.image = pinImage; 
    return customPinView; 
} 

ottengo l'immagine che voglio posizionato più o meno nel posto giusto, ma non del tutto. La mia immagine è simile al seguente:

enter image description here

voglio il punto inferiore della lacrima per puntare alla mia mappa annotazioni di coordinate, come la vista pin punti standard per la mappa di coordinate. Come posso realizzare questo? Attualmente sembra un po 'più come se la mia immagine fosse centrata sulla coordinata della mappa.

risposta

13

Per impostazione predefinita, il centro di visualizzazione è posizionato sulla coordinata di annotazione. Per regolare la posizione della vista impostare la proprietà centerOffset:

annotationView.centerOffset = CGPointMake(0.0f, -annotationViewHeight/2); 
+0

in questo caso. il centro della vista si allinea alla posizione esatta della coordinata. La base del pin di dovrebbe essere alla coordinata per la precisione. – carbonr