Eli*_*Eli 2 annotations mkmapview mkannotationview ios mkmapviewdelegate
我正在使用填充了自定义引脚的地图视图.当用户点击地图上的某个地方取消选择一个引脚时,我想实现地图,这样引脚就不会被取消选择(即用户无法在不选择其他引脚的情况下取消选择引脚,因此至少会选择一个引脚).这是我对didDeselectAnnotationView方法的实现:
-(void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
[mapView selectAnnotation:view.annotation animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
基本上,我正在尝试重新选择注释.但是,经过一些调试和打印到控制台后,我意识到注释视图实际上并没有被取消选择,直到方法didDeselectAnnotationView:完成运行(即事件的顺序为:用户点击地图上的某个地方,didDeselectAnnotationView:被调用并完成执行,实际取消选择注释视图).有没有其他人遇到过这个问题,或者是否有人知道另一种强制执行地图行为的方法,这样用户无法在不选择其他引脚的情况下取消选择引脚,以便始终选择一个引脚?
谢谢您的帮助.
小智 10
尝试推迟重新选择,直到didDeselectAnnotationView完成后:
-(void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
[self performSelector:@selector(reSelectAnnotationIfNoneSelected:)
withObject:view.annotation afterDelay:0];
}
- (void)reSelectAnnotationIfNoneSelected:(id<MKAnnotation>)annotation
{
if (mapView.selectedAnnotations.count == 0)
[mapView selectAnnotation:annotation animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6469 次 |
| 最近记录: |