2016-04-13 12 views

risposta

7

Prima permettono pin per trascinare

- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id) annotation 
{ 
    pin.draggable = YES; 
} 

- (void)mapView:(MKMapView *)mapView 
annotationView:(MKAnnotationView *)annotationView 
didChangeDragState:(MKAnnotationViewDragState)newState 
    fromOldState:(MKAnnotationViewDragState)oldState 
{ 
    if (newState == MKAnnotationViewDragStateEnding) 
    { 
     CLLocationCoordinate2D droppedAt = annotationView.annotation.coordinate; 
     [annotationView.annotation setCoordinate:droppedAt]; 
     if(DEBUG_MODE){ 
     NSLog(@"Pin dropped at %f,%f", droppedAt.latitude, droppedAt.longitude); 
     } 
    } 

} 
+0

Thx Fratello Tysm ... È scosso ..... (Thumps Up +1) @Bhavin Ramani –

+0

@RahulSharma sempre i benvenuti ... –

2

Il processo è necessario per consentire al perno dragable, e si otterrà a lungo che di lat destinazione in didChangeDragState di MKMapView.

Provare sotto il codice.

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"ident"]; 
    pinView.draggable = YES; 
    pinView.animatesDrop = YES; 
    return pinView; 
} 
- (void)mapView:(MKMapView *)mapView 
annotationView:(MKAnnotationView *)annotationView 
didChangeDragState:(MKAnnotationViewDragState)newState 
    fromOldState:(MKAnnotationViewDragState)oldState 
{ 
    if (newState == MKAnnotationViewDragStateEnding) 
    { 
     droppedAt = annotationView.annotation.coordinate; 
     NSLog(@"Pin dropped at %f,%f", droppedAt.latitude, droppedAt.longitude); 
    } 
} 
0

Per trascinare un'annotazione, impostare la proprietà trascinabili del annotazione SI.

impostare l'analisi dell'aggregazione nel metodo delegato viewForAnnotation.

Utilizzare il metodo delegato metodo didChangeDragState per ottenere nuove coordinate della nota.

- (void)mapView:(MKMapView *)mapView 
     annotationView:(MKAnnotationView *)annotationView 
     didChangeDragState:(MKAnnotationViewDragState)newState 
     fromOldState:(MKAnnotationViewDragState)oldState 
{ 

    if (newState == MKAnnotationViewDragStateStarting) { 


    } 
    if (newState == MKAnnotationViewDragStateEnding) //Annotation dragging ended 
    { 
     CLLocationCoordinate2D droppedCord = annotationView.annotation.coordinate; 
     NSLog(@"New position %f,%f", droppedCord.latitude, droppedCord.longitude); 
    } 
} 
Problemi correlati