Chi*_*aka 12 mkmapview mkannotation mkannotationview ios
在我的iPad应用程序上,我使用iOS地图使用注释显示几个点.我想在选择注释时显示自定义标注.我正在使用UIPopoverController来显示callout.但是,这仅在第一次点击注释时有效.如果我想在相同的注释上看到标注,我必须先选择不同的注释,然后点击之前的注释.
基本上这个委托方法不是第二次触发.
-(void)mapView:(MKMapView *)mapView
didSelectAnnotationView:(MKAnnotationView *)view
Run Code Online (Sandbox Code Playgroud)
我正在使用故事板,并在那里设置委托.这就是我设置注释的方式.
[self.mapView addAnnotations:self.placemarksArray]
Run Code Online (Sandbox Code Playgroud)
谁能告诉我上述问题的原因?谢谢
小智 29
didSelectAnnotationView委托方法的文档在讨论部分中说明了这一点:
您可以使用此方法跟踪注释视图的选择状态中的更改.
(我在"更改"一词上添加了粗体和斜体.)
这意味着委托方法仅在注释视图的状态从"未选择"更改为"已选择"时触发.
为了避免必须点击另一个注释或地图(将所选注释的状态更改为"未选择")并再次检测相同注释上的"选择",您可以强制取消选择顶部的didSelectAnnotationView方法:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
[mapView deselectAnnotation:view.annotation animated:YES];
//existing code to handle tap on annotation...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1834 次 |
| 最近记录: |