2010-07-07 6 views

Antwort

14

Klar doch Kumpel (ja, ich bin im Gespräch mit mir),

In Ihrer benutzerdefinierten Anmerkung hinzu:

@property (nonatomic, readwrite, assign) CLLocationCoordinate2D coordinate; 

Dies erfüllt die Anforderung setCoordinate die Umsetzung, wie erwähnt inhttp: // developer. apple.com/iphone/library/documentation/MapKit/Reference/MKAnnotationView_Class/Reference/Reference.html#//apple_ref/occ/instp/MKAnnotationView/draggable

In Ihrem MapView Delegierten add:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState 
{ 
//..Whatever you want to happen when the dragging starts or stops 
} 

und in Ihrem AnnotationView auf true gesetzt ziehbar, so zum Beispiel:

customAnnotationView.draggable  = YES; 

Ich denke, dass alles, was ich zu bekommen habe, um daran zu arbeiten. Sag mir, wenn du Probleme hast.

+0

Ich verwende die benutzerdefinierte Annotationsklasse "MapLocation" aus dem Buch "More iPhone Development" - es ist eine normale benutzerdefinierte Annotationsklasse. Ich habe hinzugefügt, die vorhandene Eigenschaft zuweisen, um es wie oben zu machen, aber die Drag-Callback wird nie aufgerufen. In viewForAnnotation wirke ich die Annotation als MapLocation und hole ihre Ansicht und setze ziehbare = YES. Ich habe es nur zum Testen, werde ich wahrscheinlich mit OS3-Unterstützung gehen. Aber haben Sie eine Idee, was fehlt? –

+0

Tristan würden Sie bereit sein, den Code zu teilen, den Sie verwendeten, um es zu erhalten? Ich mache alles, woran ich denken kann, aber aus irgendeinem Grund kann ich die Nadel nicht bewegen, und ich habe jedes Tutorial ausprobiert, das ich finden konnte (einschließlich des Kommentars unten). Vielen Dank! –