当引脚完成它的放置动画时,我想要弹出注释标注。目前,我可以使用以下方法进行模拟:
- (void)showCallOut {
[myMapView selectAnnotation:[myMapView.annotations objectAtIndex:0] animated:YES];
}
在我的viewDidLoad
中,我的注释已创建
[myMapView addAnnotation:annotation];
问题是你之后根本无法调用[self showCallOut];
,因为在运行时它会在MapKit“确认”注释掉落之前做出响应。我需要创建一个延迟(想要避免这种情况)或找到正确的方法来检测注释何时就位,然后运行showCallOut
方法。
感谢您的帮助!
感谢下面的aBitObvious提供解决方案:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
[self performSelector:@selector(showCallOut) withObject:nil afterDelay:1];
}
答案 0 :(得分:5)
尝试使用didAddAnnotationViews委托方法:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
[self showCallOut];
}
确保已设置地图视图的委托。
修改强>
如果你需要添加一个延迟,那么试试这个(例如延迟1/2秒):
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
[self performSelector:@selector(showCallOut) withObject:nil afterDelay:0.5];
}