0

我想在拖动时更改 mkannotationview 的标题。MKannotationview 没有 title 属性-我有一个自定义视图。那么如何在dragstate委托方法中访问它呢?

  -(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view 
  didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:
  (MKAnnotationViewDragState)oldState
   {
   NSLog(@"old state, new state:%d, %d",oldState,newState);
   //view setTitle
   }

如果我可以从这里调用 viewforannotationdelegate 方法,那会有所帮助。那至少有可能吗?

4

2 回答 2

2

这是正确的铸造:

             ParkPlaceMark *annotation = (ParkPlaceMark *)view.annotation;

Placemark - 我的自定义类;视图 - mkannotationview

于 2012-09-26T06:21:19.487 回答
0

您可以将其MKAnnotationView转换为您自己的包含您的 title 属性的子类。

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

    if([view isKindOfClass:[CustomMKAnnotationView class]]) {
        CustomMKAnnotation *customView = (CustomMKAnnotation *)view.annotation;
        customView.title = @"New Title";

    }
}
于 2012-09-26T04:16:48.710 回答