Mik*_*iel 3 iphone cocoa-touch mapkit
当引脚完成它的放置动画时,我希望弹出注释标注.目前我可以使用以下方法模拟它:
- (void)showCallOut {
[myMapView selectAnnotation:[myMapView.annotations objectAtIndex:0] animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
在我viewDidLoad
的地方创建了我的注释
[myMapView addAnnotation:annotation];
Run Code Online (Sandbox Code Playgroud)
问题是你之后根本无法[self showCallOut];
调用,因为在运行时它会在MapKit"确认"注释掉落之前做出响应.我需要创建一个延迟(想要避免这种情况)或者找到正确的方法来检测注释何时就位,然后运行该showCallOut
方法.
谢谢你的帮助!
感谢下面的aBitObvious提供解决方案:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
[self performSelector:@selector(showCallOut) withObject:nil afterDelay:1];
}
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试使用didAddAnnotationViews委托方法:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
[self showCallOut];
}
Run Code Online (Sandbox Code Playgroud)
确保已设置地图视图的委托.
编辑:
如果您需要添加延迟,请尝试相反(例如延迟1/2秒):
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
[self performSelector:@selector(showCallOut) withObject:nil afterDelay:0.5];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
723 次 |
最近记录: |