Ios MKMapView:在注释pin上单击事件
我正在使用一个包含两个Ios MKMapView:在注释pin上单击事件,ios,cocoa-touch,uitableview,mkmapview,Ios,Cocoa Touch,Uitableview,Mkmapview,我正在使用一个包含两个MKAnnotationpin的MKMapView。 在地图上方,我显示了一个UITableView,其中包含MKAnnotation引脚的详细信息 我的问题:当我选择pin时,我想选择相应的表格单元格。 为此,如果选择了pin,我希望捕获一个事件/委托。我不是说打电话给调出附件 - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryContr
MKAnnotation
pin的MKMapView
。在地图上方,我显示了一个
UITableView
,其中包含MKAnnotation
引脚的详细信息
我的问题:当我选择pin时,我想选择相应的表格单元格。
为此,如果选择了pin,我希望捕获一个事件/委托。我不是说打电话给调出附件
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
在MapKit中,我还没有看到一种简单的方法来实现这一点。代理上没有
mapView:Annotationwasttapped:
一种方法是提供自己的注释视图子类。自定义注释视图可以在
setSelected:animated:
或较低级别的事件处理程序中捕获管脚选择,并将该信息传递给视图控制器。您可以为所选事件使用观察者:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:@"ANSELECTED"];
只是对此的更新--在iOS 4中,有一些MKMapViewDelegate方法可用于跟踪注释选择和取消选择:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
我也是这样做的。奇怪的是,苹果没有为此提供任何回调:/如果您想知道用户是否正在单击展开/选定的批注,可以在didSelectAnnotationView中选中view.selected==YES
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view