2010-07-07 9 views

risposta

14

Certo cosa amico (sì sto parlando con me stesso),

Nella vostra annotazione personalizzato aggiuntivo:

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

Questo soddisfa il requisito di attuare setCoordinate, come accennato inhttp: // sviluppatore. apple.com/iphone/library/documentation/MapKit/Reference/MKAnnotationView_Class/Reference/Reference.html#//apple_ref/occ/instp/MKAnnotationView/draggable

Nella tua MapView delegato aggiuntivo:

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

e nella vostra AnnotationView impostata su true trascinabili, così per esempio:

customAnnotationView.draggable  = YES; 

Credo che sia stato tutto quello che ho fatto per farlo funzionare. Dimmi se hai problemi.

+0

Sto utilizzando la classe di annotazione personalizzata "MapLocation" dal libro "More iPhone Development" - è una normale classe di annotazione personalizzata. Ho aggiunto, assegnare alla proprietà esistente per renderlo come sopra, ma il callback drag non viene mai richiamato. In viewForAnnotation ho lanciato l'annotazione come MapLocation e ho recuperato la sua vista e impostato draggable = YES. L'ho fatto solo per il test, probabilmente andrò con il supporto per OS3. Ma hai un'idea di cosa potrebbe mancare? –

+0

Tristan saresti disposto a condividere il codice che hai usato per farlo svegliare? Sto facendo tutto quello che riesco a pensare ma per qualche motivo non riesco a far muovere la spilla e ho provato tutti i tutorial che ho trovato (compreso il commento qui sotto). Grazie! –